添加由 SQLServerAgent 服務(wù)執(zhí)行的新作業(yè)。
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'
作業(yè)的名稱。該名稱必須唯一,不能包含百分比 (%) 字符。job_name 的數(shù)據(jù)類型為 sysname,沒有默認設(shè)置。
[ @enabled = ] enabled
指明所添加的作業(yè)的狀態(tài)。enabled 的數(shù)據(jù)類型為 tinyint,默認設(shè)置為 1(啟用)。如果為 0,則不啟用作業(yè),也不按照其調(diào)度運行該作業(yè);但是可以手工運行該作業(yè)。
[ @description = ] 'description'
是作業(yè)描述。description 是 nvarchar(512) 類型,其默認值為 NULL。如果省略 description,則使用"無可用的描述"。
[ @start_step_id = ] step_id
該作業(yè)所要執(zhí)行的第一步的標識號。step_id 的數(shù)據(jù)類型為 int,默認設(shè)置為 1。
[ @category_name = ] 'category'
是作業(yè)分類。category 的數(shù)據(jù)類型為 sysname,默認設(shè)置為 NULL。
[ @category_id = ] category_id
用來指定作業(yè)分類的與語言無關(guān)的機制。category_id 的數(shù)據(jù)類型為 int,默認設(shè)置為 NULL。
[ @owner_login_name = ] 'login'
是擁有作業(yè)的登錄的名稱。login 的數(shù)據(jù)類型為 sysname,默認設(shè)置為 NULL,此時可解釋為當前的登錄名。
[ @notify_level_eventlog = ] eventlog_level
指明何時將該作業(yè)的項目放進 Microsoft® Windows NT® 應用程序日志中的值。eventlog_level 的數(shù)據(jù)類型為 int,可以為下列值之一。
值 | 描述 |
---|---|
0 | 從不 |
1 | 成功后 |
2(默認值) | 失敗后 |
3 | 始終 |
[ @notify_level_email = ] email_level
用于指明作業(yè)完成后何時發(fā)送電子郵件的值。email_level 的數(shù)據(jù)類型為 int,設(shè)置為 0,表示成功發(fā)送。email_level 和 eventlog_level 使用相同的值。
[ @notify_level_netsend = ] netsend_level
用于指明作業(yè)完成后何時發(fā)送網(wǎng)絡(luò)消息的值。netsend_level 的數(shù)據(jù)類型為 int,默認設(shè)置為 0,表示從不發(fā)送。netsend_level 和 eventlog_level 使用相同的值。
[ @notify_level_page = ] page_level
用于指明作業(yè)完成后何時發(fā)送呼叫的值。page_level 的數(shù)據(jù)類型為 int,默認設(shè)置為 0,表示從不發(fā)送。page_level 和 eventlog_level 使用相同的值。
[ @notify_email_operator_name = ] 'email_name'
當達到 email_level 時,電子郵件所發(fā)送到的人員的電子郵件名稱。email_name 的數(shù)據(jù)類型為 sysname,默認設(shè)置為 NULL。
[ @notify_netsend_operator_name = ] 'netsend_name'
在該作業(yè)完成時,將網(wǎng)絡(luò)消息發(fā)送到的操作員的名稱。netsend_name 的數(shù)據(jù)類型為 sysname,默認設(shè)置為 NULL。
[ @notify_page_operator_name = ] 'page_name'
該作業(yè)完成時要呼叫的人員的名稱。page_name 的數(shù)據(jù)類型為 sysname,默認設(shè)置為 NULL。
[ @delete_level = ] delete_level
用于指明何時刪除作業(yè)的值。delete_value 的數(shù)據(jù)類型為 int,默認設(shè)置為 0,表示從不刪除。delete_level 和 eventlog_level 使用相同的值。
說明 當 delete_level 為 3 時,只執(zhí)行一次作業(yè),而不管任何為該作業(yè)定義的調(diào)度如何。而且,如果作業(yè)將其自身刪除,則該作業(yè)的歷史也將被刪除。
[ @job_id = ] job_id OUTPUT
指派給成功創(chuàng)建的作業(yè)的作業(yè)標識號。job_id 是 uniqueidentifer 類型的輸出變量,默認設(shè)置為 NULL。
0(成功)或 1(失敗)
無
@originating_server 存在于 sp_add_job 中,但沒有列在參數(shù)里。保留 @originating_server 用于內(nèi)部使用。
當執(zhí)行 sp_add_job 添加完作業(yè)后,可使用 sp_add_jobstep 添加執(zhí)行該作業(yè)活動的步驟。sp_add_jobschedule 可用于創(chuàng)建 SQLServerAgent 服務(wù)用于執(zhí)行作業(yè)的調(diào)度。
SQL Server 企業(yè)管理器提供易于使用的圖形方法來管理作業(yè),建議使用該方法創(chuàng)建和管理作業(yè)基本結(jié)構(gòu)。
執(zhí)行權(quán)限默認授予 public 角色。
此示例添加一個名為 NightlyBackups 的新作業(yè)。
USE msdb
EXEC sp_add_job @job_name = 'NightlyBackups'
下面的示例創(chuàng)建名為 Ad hoc Sales Data Backup 的作業(yè),該作業(yè)通知 janetl(通過尋呼機、電子郵件或網(wǎng)絡(luò)彈出式消息)作業(yè)是否失敗,并刪除已成功完成的作業(yè)。
USE msdb
EXEC sp_add_job @job_name = 'Ad hoc Sales Data Backup',
@enabled = 1,
@description = 'Ad hoc backup of sales data',
@owner_login_name = 'janet1',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = 'janet1',
@notify_netsend_operator_name = 'janet1',
@notify_page_operator_name = 'janet1',
@delete_level = 1
相關(guān)文章