2010-05-24 113 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