日期:2014-05-16  浏览次数:20648 次

如何用SQL写一个类似计时器的存储过程
如题,我是想每次系统启动时就调用一个存储过程,该存储过程有计时器作用,简单说就是我想知道SQL服务器运行了多长时间!
------解决方案--------------------
--仅供参考
--#1.创建一张表,存储SQL SERVER状态信息
CREATE TABLE sqlserverstatus(id INT IDENTITY, [description] VARCHAR(10), startdate DATETIME, currentdate DATETIME)
GO
--#2.创建一个存储过程
CREATE PROC sp_test
AS
INSERT INTO sqlserverstatus
SELECT '启动', GETDATE(), GETDATE()
GO
--#3.设置#2中的存储过程在SQL SERVER服务器启动时启动
exec sp_procoption @ProcName = 'sqlserverstatus',@OptionName = 'STARTUP', @OptionValue = 'ON'

--#4.创建一个JOB,对SQL SERVER做心跳检测
UPDATE sqlserverstatus
SET currentdate = GETDATE()
WHERE id = (SELECT MAX(id) FROM sqlserverstatus)

------解决方案--------------------
You can use the startup procedure for this.

step1.set the system option 'scan for startup procs' value to 1,default value is 0.
http://technet.microsoft.com/en-us/library/ms179460(v=sql.105).aspx

step2.create a stored procedure for auto execution when SQL Server is started.

step3.use sp_procoption to sets stored procedure for auto execution.
      that is set to auto execution runs every time an instance of SQL Server is started.
http://technet.microsoft.com/en-us/library/ms181720(v=sql.105).aspx
------解决方案--------------------
另外,要修改sa的密码,可以通过下面简单那的语句实现:


ALTER LOGIN sa WITH PASSWORD = 'password1';