2011-02-24 41 views
3

你好我正在使用MS SQL Management Studio Express 2005,我需要有一個存儲過程來每天激活。是否可以自動運行存儲過程而不使用sql sever Agent?

但是我沒有SQL代理。

Managemnet工作室不會每天打開,所以我不能使用啓動腳本。

任何人都知道如何在沒有代理的情況下做到這一點?

在此先感謝。

回答

3

你可以使用SQLCMD

http://msdn.microsoft.com/en-us/library/ms162773.aspx

再有,在一個批處理文件,並通過Windows調度

下面的例子

sqlcmd -E -S localhost -q "select count(1) from databasename.dbo.tablename" 

計劃,這將連接到SQL上的本地並在數據庫中的表上執行行計數

+0

謝謝,我將如何啓動腳本?謝謝你somuch你的時間 – Leigh

+0

sqlcmd -E -S本地主機-q「從databasename.dbo.tablename選擇計數(1)」-E表示一個可信的連接(您可能需要使用-U和-P給出一個特定的用戶名和密碼)-S給服務器和-q是查詢....請注意在交換機上的情況很重要 – AgentDBA

+0

謝謝,但我有,我有錯誤,他們無法連接,必須撥號啓用,謝謝 – Leigh

1

創建一個執行數據庫調用並使用「計劃任務」執行腳本的腳本。

1

您可以創建Windows計劃任務來運行命令行客戶端osql

1

它不漂亮,但你可以在主創建一個存儲過程:

use master 
go 
CREATE PROCEDURE DoStuffDaily 
AS 
    WHILE 1=1 
    BEGIN 
     WAITFOR TIME '00:05' --5 past midnight? 
     EXEC <yourdb>.<schema>.<proc> 
    END 
go 

然後就標誌着這個存儲過程與使用sp_procoption啓動程序,並重新啓動SQL Server。

+0

,這是否意味着每次SQL啓動或者thios總是運行時都會運行?謝謝 – Leigh

+0

每次SQL Server啓動時它都會運行 - 但請注意,這個特殊的存儲過程永遠不會結束 - 它只是每天等待'00:05',然後運行您想要每天運行的存儲過程 - 如果你存儲的proc運行速度非常快,你可能需要在'EXEC'後添加第二個'WAITFOR TIME',以確保它不會在同一天運行兩次,即'WAITFOR TIME '00:06''將確保。 –

相關問題