SQL Server是如何讓定時作業

2021-06-26 04:33:26 字數 1609 閱讀 8317

如果在sql server 裡需要定時或者每隔一段時間執行某個儲存過程或3200字元以內的sql語句時,可以用管理->sql server**->作業來實現。

1、管理->sql server**->作業(按滑鼠右鍵)->新建作業->

2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->分類處可選擇也可用預設的[未分類 (本地)]->所有者預設為登入sql server使用者[也可選其它的登入]->描述[填寫本次工作詳細描述內容];

[ 建立作業分類的步驟:sql server**->作業->右鍵選所有任務->新增、修改、刪除 ]

3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->型別[transact-sql(tsql)指令碼]->資料庫[要操作的資料庫]->命令[ 如果是簡單的sql直接寫進去即可,也可用開啟按鈕輸入乙個已寫好的*.sql檔案

如果要執行儲存過程,填exec p_procedure_name v_parameter1,[ v_parameter2…v_parametern]]->確定(如果有多個步驟,可以再次呼叫下面的新建按鈕;也可以對已有的多個步驟插入、編輯、刪除);

4、建作業屬性(排程)->新建排程->名稱[自定義排程名稱]->啟用的方框內是勾號->排程->反覆出現->更改[排程時間表]->確定(如果只要儲存此作業,不要定時做可以把啟用的方框內是勾號去掉);

5、建作業屬性(通知)->用預設的通知方法就好[當作業失敗時,寫入windows應用程式系統日誌] ->確定。

跟作業執行相關的一些sql server知識:

sqlserveragent服務必須正常執行,啟動它的nt登入使用者要跟啟動sql server資料庫的nt登入使用者一致。

點作業右鍵可以檢視作業執行的歷史記錄情況,也可以立即啟動作業和停止作業。

最近在看作業歷史記錄時,發現有的作業記錄的歷史記錄多,有的作業記錄的記錄的歷史記錄少.

如何能使某些作業按各自的需求,保留一段時間.比如保留乙個月的歷史記錄.

在管理->sql server**->右鍵選屬性->作業系統->限制作業歷史記錄日誌的大小->

作業歷史記錄日誌的最大大小(行數) 預設為1000 如果某台機器的作業數量很多,一定要提高它,例如為100000

每個作業歷史記錄日誌的最大行數 預設為100 如果作業每天執行兩次,需要保留乙個月的日誌,可以設為60

它們之間有乙個相互制約關係, 我們可以根據自己的需要來改.

如果sql server伺服器改過機器名, 管理是舊名稱時建立的job的時候可能會遇到

錯誤14274: 無法新增、更新或刪除從msx伺服器上發起的作業(或其步驟或排程)

看了microsoft的文件

說sql server 2000系統裡msdb..sysjobs 裡originating_server 欄位裡存的是原來的伺服器的名稱.

24x7在用的系統肯定不能按上面microsoft的文件說的那樣把名字改回來又改過去。

於是想,msdb..sysjobs 能否update originating_server 欄位成現在在用的新伺服器名?

use msdb

select * from sysjobs

找到originating_server 字段還是舊伺服器的job_id, 然後執行update語句:

怎樣讓sqlserver後台定時執行某個儲存過程?

你的資料庫伺服器 企業管理器 管理 sql server 作業 新建作業,按照要求填就可以了,在 步驟 的 命令 中填寫你要執行的儲存過程或語句,在 排程 裡面填寫什麼時間執行 或 exec sp add job job name 作業名字 exec sp add jobstep job name ...

怎樣讓sqlserver後台定時執行某個儲存過程?

你的資料庫伺服器 企業管理器 管理 sql server 作業 新建作業,按照要求填就可以了,在 步驟 的 命令 中填寫你要執行的儲存過程或語句,在 排程 裡面填寫什麼時間執行 或 exec sp add job job name 作業名字 exec sp add jobstep job name ...

如何讓指令碼定時執行

一 計畫任務 1.非root使用者建立計畫任務 crontab u bin e crondtab u bin l 檢視方法 ls var spool cron 所有計畫任務存放目錄 2.高階crontab 篡改乙個系統級別的計畫任務 ls etc cron 按兩下tab鍵檢視 cron.d 系統級別...