2010-05-24 109 views
1

我试图在SQL Server启动时检查服务的状态。我正在使用xp_cmdshell和'sc查询SQLServerAgent |例如查找“STATE”以将输出加载到全局临时表。它在SQL Server已经启动时起作用,但在proc通过sp_procoption设置为autoexec时不起作用。在SQL Server启动时检查服务

回答

1

也许这与它有些关系:“启动过程必须在master数据库中,不能包含INPUT或OUTPUT参数。启动时恢复主数据库时,启动存储过程的执行。 http://technet.microsoft.com/en-us/library/ms181720.aspx

+0

启动过程会发出INSERT INTO ... EXEC xp_cmdshell来填充全局临时表,因为您无法使用INPUT或OUTPUT参数。当启动过程读取临时表时,INSERT中没有任何内容。 – 2010-05-24 17:38:34

0

你可以尝试EXEC master.dbo.xp_servicecontrol 'QueryState', 'SQLSERVERAGENT'代替

我曾经使用SQL Server 2000上这个回来了,它仍然存在,2005年

有,当存储过程运行,因为SQL代理没有运行的可能性它是依赖的。或者tempdb没有准备好。

+0

我试着用这个扩展的proc来填充在启动时创建的全局临时表,它也没有工作。 – 2010-05-24 17:33:07