當前位置:首頁 » 編程語言 » sql實現調度任務
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql實現調度任務

發布時間: 2023-08-04 05:39:04

① 在sql SERVER 2000中建立一個作業,定時執行一次。

舉個定時備份的例子: --建立一個作業! 企業管理器 --管理 --SQL Server代理 --右鍵作業 --新建作業 --"常規"項中輸入作業名稱 --"步驟"項 --新建 --"步驟名"中輸入步驟名 --"類型"中選擇"Transact-SQL 腳本(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: backup database database1 to disk='c:\備份文件名.bak' --確定 --"調度"項 --新建調度 --"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排 --如果選擇"反復出現" --點"更改"來設置你的時間安排 然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行

② 如何調度和運行一個SSIS包作業在SQLServer2005

在SQL Server 2005後,您創建一個SSIS包"(DTS),你要創建一個作業調度運行。你將得到錯誤,以防止運行作業。是什麼問題?
原因是:從SQL Server 2000 SQL Server 2005是相當不同的。在SQL Server
2000,您可以創建工作,並運行它沒有問題。在SQL Server 2005,您需要通過安全層,以運行作業。 其中的邏輯是這樣的:/
SPAN> 工作執行帳戶需要系統管理員,NBSP的角色;
SQLAgentUserRole,SQLAgentReaderRole, SQLAgentOperatorRole的?/ SPAN>
工作需要代理帳戶下運行???/ SPAN>
工作執行帳戶可用於創建SSIS包,所以你是確保工作執行帳戶有權運行SSIS包。可以遵循以下步驟來完成這項工作。工作環境是MS SQL
Server Management Studio中,您作為SA登錄。 一,創建工作執行人帳戶突出顯示安全-
GT,新建登錄名",說使devlogin登錄,輸入您的密碼,默認的資料庫可以是您的目標資料庫。伺服器角色:?檢查B風格="MSO
-迪字體重量:正常"??授予sysadmin /
SPAN>用戶映射:您的目標資料庫msdb資料庫:你一定要包括SQLAgentUserRole,SQLAgentReaderRole,
SQLAgentOperatorRole的然後單擊"確定"
二。工作執行人帳戶創建SQL代理帳戶和聯營公司的代理帳戶下面是代碼和運行它的查詢窗口。 使用主CREATE CREDENTIAL
[MyCredential]使用身份='網域\
myWindowAccount",秘密='WindowLoginPassword'使用msdb資料庫Sp_add_proxy @
proxy_name ='MyProxy',@ credential_name
='MyCredential'Sp_grant_login_to_proxy @ login_name的='devlogin',@
proxy_name ='MyProxy'Sp_grant_proxy_to_subsystem @ proxy_name
='MyProxy',@ subsystem_name ='SSIS的' 三。創建SSIS包在MS SQL
Server商業智能開發工作室,您可以使用工作執行人帳戶devlogin創建SSIS包"(DTS),並確保可以執行這個包在SQL
Server商業智能開發工作室。編譯/構建這個包。 四。創建工作,安排工作和運行工作在SQL Server Management
Studio中,突出的SQL
Server代理GT;開始。突出顯示工作GT新工作嗎??名字,myJob。之下的步驟,新的一步,它命名為,第一步,類型:SQL
Server集成服務包運行方式:myProxy包源:文件系統瀏覽選擇你的包文件xxx.dtsx點擊"確定"安排工作,並使其
現在你可以運行你的工作。

③ sql server 2000怎樣設置定時自動運行SQL語句

如果在SQL Server 里需要定時或者每隔一段時間執行某個存儲過程或3200字元以內的SQL語句時,

可以用管理->SQL Server代理->作業來實現。

1、管理->SQL Server代理->作業(按滑鼠右鍵)->新建作業->

2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->

分類處可選擇也可用默認的[未分類(本地)]->所有者默認為登錄SQL Server用戶[也可選其它的登錄]->

描述[填寫本次工作詳細描述內容];

[ 創建作業分類的步驟:

SQL Server代理->作業->右鍵選所有任務->添加、修改、刪除 ]

3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]->

資料庫[要操作的資料庫]->命令

[ 如果是簡單的SQL直接寫進去即可,也可用打開按鈕輸入一個已寫好的*.sql文件
如果要執行存儲過程,填
exec p_procere_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 originating_server='new_server_name'
where job_id='B23BBEBE-A3C1-4874-A4AB-0E2B7CD01E14'

(所影響的行數為 1 行)

這樣就可以添加、更新或刪除那些曾經出error 14274 的作業了。

如果想把作業由一台機器遷移到另一台機器,可以先保留好創建作業的腳本, 然後在另一台機器上運行。

導出所有作業的創建腳本操作步驟:

管理->SQL Server代理->作業(滑鼠右鍵)->所有任務->生成SQL腳本->保存到操作系統下的某個sql文件導出某一個作業的創建腳本操作步驟:

管理->SQL Server代理->作業->選中待轉移的作業(滑鼠右鍵)->所有任務->生成SQL腳本->保存到OS下的某個sql文件然後在目的伺服器上運行剛才保存下來的創建作業的sql腳本。

( 如果建作業的用戶或者提醒的用戶不存在, 則會出錯;

我們需要在目的伺服器上建立相關的WINDOWS用戶或者SQL Server資料庫登錄,

也可以修改創建作業的腳本, 把目的伺服器上不存在的用戶替換成已經有的用戶。

如果生成日誌的物理文件目錄不存在,也應該做相關的修改,例如d:區轉f:區等

字元串的 @command 命令里有分隔符號 go 也會出錯, 可以把它去掉)

④ sql server 如何執行一項計劃任務

1、你必須開啟代理服務sql server agent
2、在企業管理器里,打開「管理—>sqlserver代理—>作業」,新增作業,新建「步驟」,在步驟里填入你要轉移的SQL語句到「命令」框里。然後新建「調度」。
3、啟動作業。
OK,自己試一下。
另外,如果你轉移的數據量比較大,還可以通過建立SQLSERVER數據復制的包來解決,然後在「步驟」里調用這個包就可以。SQLSERVER的數據復制技術,是多線程的,處理起來比較快。很久沒試了具體內容有點忘了。