你好我正在使用MS SQL Management Studio Express 2005,我需要有一個存儲過程來每天激活。是否可以自動運行存儲過程而不使用sql sever Agent?
但是我沒有SQL代理。
Managemnet工作室不會每天打開,所以我不能使用啓動腳本。
任何人都知道如何在沒有代理的情況下做到這一點?
在此先感謝。
你好我正在使用MS SQL Management Studio Express 2005,我需要有一個存儲過程來每天激活。是否可以自動運行存儲過程而不使用sql sever Agent?
但是我沒有SQL代理。
Managemnet工作室不會每天打開,所以我不能使用啓動腳本。
任何人都知道如何在沒有代理的情況下做到這一點?
在此先感謝。
你可以使用SQLCMD
http://msdn.microsoft.com/en-us/library/ms162773.aspx
再有,在一個批處理文件,並通過Windows調度
下面的例子
sqlcmd -E -S localhost -q "select count(1) from databasename.dbo.tablename"
計劃,這將連接到SQL上的本地並在數據庫中的表上執行行計數
創建一個執行數據庫調用並使用「計劃任務」執行腳本的腳本。
您可以創建Windows計劃任務來運行命令行客戶端osql
。
它不漂亮,但你可以在主創建一個存儲過程:
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。
,這是否意味着每次SQL啓動或者thios總是運行時都會運行?謝謝 – Leigh
每次SQL Server啓動時它都會運行 - 但請注意,這個特殊的存儲過程永遠不會結束 - 它只是每天等待'00:05',然後運行您想要每天運行的存儲過程 - 如果你存儲的proc運行速度非常快,你可能需要在'EXEC'後添加第二個'WAITFOR TIME',以確保它不會在同一天運行兩次,即'WAITFOR TIME '00:06''將確保。 –
謝謝,我將如何啓動腳本?謝謝你somuch你的時間 – Leigh
sqlcmd -E -S本地主機-q「從databasename.dbo.tablename選擇計數(1)」-E表示一個可信的連接(您可能需要使用-U和-P給出一個特定的用戶名和密碼)-S給服務器和-q是查詢....請注意在交換機上的情況很重要 – AgentDBA
謝謝,但我有,我有錯誤,他們無法連接,必須撥號啓用,謝謝 – Leigh