程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 看看SQLServer是如何讓定時作業?

看看SQLServer是如何讓定時作業?

編輯:關於SqlServer
如果在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的在線幫助文檔,裡面介紹說:
  
  在管理->SQL Server代理->右鍵選屬性->作業系統->限制作業歷史記錄日志的大小->
  
  作業歷史記錄日志的最大大小(行數) 默認為1000 如果某台機器的作業數量很多,一定要提高它,例如為100000
  
  每個作業歷史記錄日志的最大行數 默認為100 如果作業每天執行兩次,需要保留一個月的日志,可以設為60
  
  它們之間有一個相互制約關系, 我們可以根據自己的需要來改.
  
  如果SQL Server服務器改過機器名, 管理是舊名稱時建立的job的時候可能會遇到
  
  錯誤14274: 無法添加、更新或刪除從MSX服務器上發起的作業(或其步驟或調度)
  
  看了Microsoft的文檔:http://support.microsoft.com/default.ASPx?scid=kb;en-us;281642
  
  說SQL Server 2000系統裡msdb..sysjobs 裡originating_server 字段裡存的是原來的服務器的名稱.
  
  24X7在用的系統肯定不能按上面Microsoft的文檔說的那樣把名字改回來又改過去。
  
  於是想,msdb..sysjobs 能否update originating_server 字段成現在在用的新服務器名?
  
  use msdb
  
  select * from sysjobs
  
  找到originating_server 字段還是舊服務器的job_id, 然後執行update語句:
  
  update sysjobs set originati
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved