簡體   English   中英

計划Microsoft SQL Server 2008 R2中的存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM