如果在SQL Server 裡需要定時或者每隔一段時間執行某個存儲過程或字符以內的SQL語句時可以用管理>SQL Server代理>作業來實現
管理>SQL Server代理>作業(按鼠標右鍵)>新建作業>
新建作業屬性(常規)>名稱[自定義本次作業的名稱]>啟用的方框內是勾號>分類處可選擇也可用默認的[未分類(本地)]>所有者默認為登錄SQL Server用戶[也可選其它的登錄]>描述[填寫本次工作詳細描述內容];
[ 創建作業分類的步驟SQL Server代理>作業>右鍵選所有任務>添加修改刪除 ]
新建作業屬性(步驟)>新建>步驟名[自定義第一步驟名稱]>類型[TransactSQL(TSQL)腳本]>數據庫[要操作的數據庫]>命令[ 如果是簡單的SQL直接寫進去即可也可用打開按鈕輸入一個已寫好的*sql文件
如果要執行存儲過程填exec p_procedure_name v_parameter[ v_parameter…v_parameterN]]>確定(如果有多個步驟可以再次調用下面的新建按鈕;也可以對已有的多個步驟插入編輯刪除);
建作業屬性(調度)>新建調度>名稱[自定義調度名稱]>啟用的方框內是勾號>調度>反復出現>更改[調度時間表]>確定(如果只要保存此作業不要定時做可以把啟用的方框內是勾號去掉);
建作業屬性(通知)>用默認的通知方法就好[當作業失敗時寫入Windows應用程序系統日志] >確定
跟作業執行相關的一些SQL Server知識
SQLSERVERAGENT服務必須正常運行啟動它的NT登錄用戶要跟啟動SQL Server數據庫的NT登錄用戶一致
點作業右鍵可以查看作業執行的歷史記錄情況也可以立即啟動作業和停止作業
最近在看作業歷史記錄時發現有的作業記錄的歷史記錄多有的作業記錄的記錄的歷史記錄少
如何能使某些作業按各自的需求保留一段時間比如保留一個月的歷史記錄
看了SQL Server的在線幫助文檔裡面介紹說
在管理>SQL Server代理>右鍵選屬性>作業系統>限制作業歷史記錄日志的大小>
作業歷史記錄日志的最大大小(行數) 默認為 如果某台機器的作業數量很多一定要提高它例如為
每個作業歷史記錄日志的最大行數 默認為 如果作業每天執行兩次需要保留一個月的日志可以設為
它們之間有一個相互制約關系 我們可以根據自己的需要來改
如果SQL Server服務器改過機器名 管理是舊名稱時建立的job的時候可能會遇到
錯誤 無法添加更新或刪除從MSX服務器上發起的作業(或其步驟或調度)
說SQL Server 系統裡msdbsysjobs 裡originating_server 字段裡存的是原來的服務器的名稱
X在用的系統肯定不能按上面Microsoft的文檔說的那樣把名字改回來又改過去
於是想msdbsysjobs 能否update originating_server 字段成現在在用的新服務器名?
use msdb
select * from sysjobs
找到originating_server 字段還是舊服務器的job_id 然後執行update語句
update sysjobs set originati
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22271.html