![](/img/trans.png)
[英]How to get the recordset in SQL Server 2008 r2 stored procedure?
[英]Schedule Stored Procedure in Microsoft SQL Server 2008 R2
我必須每天在特定時間運行存儲過程。 我一直在努力使用Windows Service,在嘗試失敗之后,我開始考慮安排SQL作業或安排事件。
為了安排SQL Server作業,我必須使用SQL Server代理創建一個作業。 我正在Windows上使用Microsoft SQL Server 2008 R2 Express(具有高級服務),即使我具有管理員訪問權限(以Windows身份驗證登錄)也無法找到SQL Server代理。
在給定的情況下,調度存儲過程的最佳方法是什么,該如何處理?
您可以使用一種方法來計划使用另一個SP的過程。 如下創建新的SP:
CREATE SP1
AS
WHILE (1)
BEGIN
WAITFOR TIME '22:20'; -- Your Time
EXECUTE 'Your SP Name'
END;
GO
您可以根據需要使用錯誤處理。
SQL Server代理包含三個后端表,用於在創建作業時保存前端數據
sysjobs
sysjobschedules
sysjobsteps
在sysjobs中輸入與作業相關的信息,在schedules表中提供調度信息,並以exec procname之類的步驟提供您的sql代碼。 請注意,僅應在msdb數據庫中對其進行更新。
由於SQL Server Express不包括SQL Server代理,因此您將無法直接在SQL Server中計划SQL作業。 但是,這並不意味着您無法計划要運行的作業。
使用sqlcmd
。 它是一個命令行工具。 (在命令窗口中運行sqlcmd /?
,它將向您顯示確切的命令行語法。)
例如,您可以使用內置的Windows Task Scheduler通過受信任的連接( -E
參數)來調度和運行特定的命令行任務:
sqlcmd -S {Server}\{SqlExpressInstance} -E -d {Database} -Q "EXECUTE {StoredProcedure}"
..或使用特定的登錄憑據和密碼( -U
和-P
參數):
sqlcmd -U {LoginId} -P {Password} -S {Server}\{SqlExpressInstance} -d {Database} -Q "EXECUTE {StoredProcedure}"
有關使用sqlcmd
更多信息,請閱讀: 使用sqlcmd實用程序(SQL Server Express)
有關使用Windows Task Scheduler的更多信息,請閱讀: Task Scheduler
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.