sp_add_job (Transact-SQL)

來源:互聯網
上載者:User
sp_add_job (Transact-SQL) 

添加由 SQLServerAgent 服務執行的新作業。

文法

sp_add_job [ @job_name = ] 'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] 'description' ]
[ , [ @start_step_id = ] step_id ]
[ , [ @category_name = ] 'category' ]
[ , [ @category_id = ] category_id ]
[ , [ @owner_login_name = ] 'login' ]
[ , [ @notify_level_eventlog = ] eventlog_level ]
[ , [ @notify_level_email = ] email_level ]
[ , [ @notify_level_netsend = ] netsend_level ]
[ , [ @notify_level_page = ] page_level ]
[ , [ @notify_email_operator_name = ] 'email_name' ]
[ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
[ , [ @notify_page_operator_name = ] 'page_name' ]
[ , [ @delete_level = ] delete_level ]
[ , [ @job_id = ] job_id OUTPUT ]


參數

[ @job_name = ] 'job_name'

作業的名稱。該名稱必須唯一,且不能含有百分比 (%) 字元。job_name 的資料類型為 nvarchar(128),無預設值。

[ @enabled = ] enabled

指示添加的作業的狀態。enabled 的資料類型為 tinyint,預設值為 1(啟用)。如果為 0,則不啟用作業,也不按作業計劃運行作業。可以手動運行作業。

[ @description = ] 'description'

作業的說明。description 的資料類型為 nvarchar(512),預設值為 NULL。如果省略 description,則使用“無說明”。

[ @start_step_id = ] step_id

該作業要執行的第一步的標識號。step_id 的資料類型為 int,預設值為 1。

[ @category_name = ] 'category'

作業的類別。category 的資料類型為 sysname,預設值為 NULL。

[ @category_id = ] category_id

一種與語言無關的機制,用於指定作業類別。category_id 的資料類型為 int,預設值為 NULL。

[ @owner_login_name = ] 'login'

擁 有作業的登入名稱。login 的資料類型為 sysname,預設值為 NULL,可解釋為當前登入名稱。只有 sysadmin 固定伺服器角色的成員才可以設定或更改 @owner_login_name 的值。如果非 sysadmin 角色成員的使用者佈建或更改 @owner_login_name 的值,則無法執行此預存程序,並且會返回錯誤。

[ @notify_level_eventlog = ] eventlog_level

一個值,用於指示何時將該作業的項放入 Microsoft Windows 應用程式記錄檔。eventlog_level 的資料類型為 int,可以是下列值之一:

說明

0

從不

1

成功後

2(預設值)

失敗後

3

始終

[ @notify_level_email = ] email_level

一個值,用於指示完成該作業後何時寄送電子郵件。email_level 的資料類型為 int,預設值為 0,指示從不發送。email_level 和 eventlog_level 使用相同的值。

[ @notify_level_netsend = ] netsend_level

一個值,用於指示完成該作業後何時發送網路訊息。netsend_level 的資料類型為 int,預設值為 0,指示從不發送。netsend_level 和 eventlog_level 使用相同的值。

[ @notify_level_page = ] page_level

一個值,用於指示完成該作業後何時發送呼叫。page_level 的資料類型為 int,預設值為 0,指示從不發送。page_level 和 eventlog_level 使用相同的值。

[ @notify_email_operator_name = ] 'email_name'

達到 email_level 時,電子郵件收件者的電子郵件名稱。email_name 的資料類型為 sysname,預設值為 NULL。

[ @notify_netsend_operator_name = ] 'netsend_name'

完成該作業後,接收網路訊息的操作員的名稱。netsend_name 的資料類型為 sysname,預設值為 NULL。

[ @notify_page_operator_name = ] 'page_name'

完成該作業後,呼叫接收人的名稱。page_name 的資料類型為 sysname,預設值為 NULL。

[ @delete_level = ] delete_level

一個值,用於指示何時刪除作業。delete_value 的資料類型為 int,預設值為 0,表示從不刪除。delete_level 和 eventlog_level 使用相同的值。

注意:
如果 delete_level 為 3,則該作業只執行一次,不再考慮為該工作定義的任何計劃。而且,如果作業將自身刪除,則將同時刪除該作業的記錄。

[ @job_id = ] job_id OUTPUT

成功建立了作業時,分配給作業的作業標識號。job_id 是 uniqueidentifier 類型的輸出變數,預設值為 NULL。


備忘

@originating_server 存在於 sp_add_job 中,但不列在參數下。@originating_server 被保留供內部使用。

執 行 sp_add_job 添加作業後,可使用 sp_add_jobstep 添加執行該作業活動的步驟。sp_add_jobschedule 可用於建立 SQL Server Agent服務使用的作業執行計畫。使用 sp_add_jobserver 設定執行作業所在的 SQL Server 執行個體,使用 sp_delete_jobserver 從 SQL Server 執行個體中刪除作業。

如果對多伺服器環境中的一個或多個目標伺服器執行作業,則可使用 sp_apply_job_to_targets 設定作業的目標伺服器或目標伺服器組。若要從目標伺服器或目標伺服器組中刪除作業,可使用 sp_remove_job_from_targets。

SQL Server Management Studio 為管理作業提供了一種圖形化的簡便方法,建議使用此方法來建立和管理作業基礎結構。


傳回碼值

0(成功)或 1(失敗)


結果集


許可權

若要運行此預存程序,使用者必須是 sysadmin 固定伺服器角色的成員,或者被授予下列 msdb 資料庫中 SQL Server Agent固定資料庫角色:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

有關與上述每個固定資料庫角色關聯的特定許可權的資訊,請參閱 SQL Server Agent固定資料庫角色。

只有 sysadmin 固定伺服器角色的成員才可以設定或更改 @owner_login_name 的值。如果非 sysadmin 角色成員的使用者佈建或更改 @owner_login_name 的值,則無法執行此預存程序,並且會返回錯誤。

樣本

A. 添加作業

此樣本將添加一個名為 NightlyBackups 的新作業。

USE msdb ;
GO

EXEC dbo.sp_add_job
@job_name = N'NightlyBackups' ;
GO

B. 添加一個具有呼叫、電子郵件和網路發送資訊的作業

該樣本將建立一個名為 Ad hoc Sales Data Backup 的作業。如果該作業失敗,則會通知 François Ajenstat(通過呼叫、電子郵件或網路彈出訊息);如果作業成功,則刪除該作業。

注意:
本例假定已經存在一個名為 François Ajenstat 的操作員和名為 françoisa 的登入名稱。

USE msdb ;
GO

EXEC dbo.sp_add_job
@job_name = N'Ad hoc Sales Data Backup',
@enabled = 1,
@description = N'Ad hoc backup of sales data',
@owner_login_name = N'françoisa',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = N'François Ajenstat',
@notify_netsend_operator_name = N'François Ajenstat',
@notify_page_operator_name = N'François Ajenstat',
@delete_level = 1 ;
GO

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.