適用於:SQL Server
Azure SQL 受控執行個體
建立 SQL Server Agent 服務所執行的新作業。
重要
Azure SQL 受控執行個體目前支援多數 (但非全部) 的 SQL Server Agent 功能。 如需詳細資料,請參閱 Azure SQL 受控執行個體與 SQL Server 之間的 T-SQL 差異。
語法
dbo.sp_add_job
[ @job_name = ] N'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] N'description' ]
[ , [ @start_step_id = ] start_step_id ]
[ , [ @category_name = ] N'category_name' ]
[ , [ @category_id = ] category_id ]
[ , [ @owner_login_name = ] N'owner_login_name' ]
[ , [ @notify_level_eventlog = ] notify_level_eventlog ]
[ , [ @notify_level_email = ] notify_level_email ]
[ , [ @notify_level_netsend = ] notify_level_netsend ]
[ , [ @notify_level_page = ] notify_level_page ]
[ , [ @notify_email_operator_name = ] N'notify_email_operator_name' ]
[ , [ @notify_netsend_operator_name = ] N'notify_netsend_operator_name' ]
[ , [ @notify_page_operator_name = ] N'notify_page_operator_name' ]
[ , [ @delete_level = ] delete_level ]
[ , [ @job_id = ] 'job_id' OUTPUT ]
[ , [ @originating_server = ] N'originating_server' ]
[ ; ]
引數
[ @job_name = ] N'job_name'
作業的名稱。 名稱必須是唯一的,且不能包含百分比 (%) 字元。
@job_name為 nvarchar(128),沒有預設值。 必要。
[ @enabled = ] 啟用
指出已新增作業的狀態。
@enabled為 tinyint,預設值1為 (已啟用)。 如果 0為 ,則作業未啟用,且未根據其排程執行;不過,可以手動執行。
[ @description = ] N'description'
這是作業的描述。
@description為 nvarchar(512),預設值為 NULL。 如果 省略@description , N'No description available' 則會使用 。
[ @start_step_id = ] start_step_id
要針對作業執行之第一個步驟的標識碼。
@start_step_id為 int,預設值為 1。
[ @category_name = ] N'category_name'
作業的類別。 @category_name為 sysname。
[ @category_id = ] category_id
指定作業類別目錄的語言無關機制。 @category_id為 int。
[ @owner_login_name = ] N'owner_login_name'
擁有作業的登入名稱。
@owner_login_name為 sysname,預設值NULL為 ,其解譯為目前的登入名稱。 只有系統管理員固定伺服器角色的成員可以設定或變更@owner_login_name的值。 若非 系統管理員 成員的使用者固定伺服器角色設定或更改 @owner_login_name 值,該儲存程序執行失敗並回傳錯誤。
Warning
SQL Server Agent在工作負責人的安全情境中執行 Transact-SQL 工作步驟。 如果你更改 @owner_login_name,這些步驟會在新主人的權限下執行。
[ @notify_level_eventlog = ] notify_level_eventlog
值,指出何時在此作業的 Microsoft Windows 應用程式記錄檔中放置專案。 @notify_level_eventlog為 int,而且可以是下列其中一個值:
| 值 | 描述 |
|---|---|
0 |
永不 |
1 |
成功時 |
2 (預設值) |
失敗時 |
3 |
永遠 |
[ @notify_level_email = ] notify_level_email
值,指出完成此作業時傳送電子郵件的時機。
@notify_level_email 為 int,預設值0為 ,表示永不。
@notify_level_email使用與@notify_level_eventlog相同的值。
[ @notify_level_netsend = ] notify_level_netsend
值,指出完成此作業時傳送網路訊息的時機。 @notify_level_netsend為 int表示永不。 @notify_level_netsend使用與@notify_level_eventlog相同的值。
[ @notify_level_page = ] notify_level_page
值,指出完成此作業時傳送頁面的時機。
@notify_level_page為 int,預設值0為 ,表示永不。
@notify_level_page使用與@notify_level_eventlog相同的值。
[ @notify_email_operator_name = ] N'notify_email_operator_name'
到達@notify_email_operator_name時要傳送電子郵件的人員電子郵件名稱。 @notify_email_operator_name為 sysname。
[ @notify_netsend_operator_name = ] N'notify_netsend_operator_name'
完成此作業時,傳送網路訊息的操作員名稱。 @notify_netsend_operator_name為 sysname。
[ @notify_page_operator_name = ] N'notify_page_operator_name'
完成此作業時要分頁的人員名稱。 @notify_page_operator_name為 sysname。
[ @delete_level = ] delete_level
值,指出刪除作業的時機。 delete_value為 int表示永不。 @delete_level使用與@notify_level_eventlog相同的值。
注意
當 @delete_level,不論為作業定義的任何排程為何,作業只會執行一次。 此外,如果作業自行刪除,作業的所有歷程記錄也會一併刪除。
[ @job_id = ] 「job_id」輸出
作業建立成功時,指派給作業的作業識別碼。
@job_id是 uniqueidentifier 類型的輸出變數,預設值為 NULL。
[ @originating_server = ] N'originating_server'
僅供參考之用。 不支援。 我們無法保證未來的相容性。
傳回碼值
0 (成功) 或 1 (失敗)。
結果集
無。
備註
@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。
Azure SQL 受控執行個體 不支援多伺服器管理 (MSX/TSX) 功能。
SQL Server Management Studio 提供易用的作業管理圖形介面,是建立及管理作業基礎結構的建議方式。
此預存程式會與適用於 Azure SQL 資料庫sp_add_jobAzure Elastic Jobs 服務類似物件共用 的名稱。 如需彈性作業版本的相關信息,請參閱 jobs.sp_add_job (Azure Elastic Jobs) 。
權限
您可以授與此 EXECUTE 程序的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。
其他用戶必須在資料庫中獲得下列其中一個 SQL Server Agent 固定資料庫角色 msdb :
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
如需這些角色權限的詳細資訊,請參閱 SQL Server Agent 固定資料庫角色。
只有系統管理員固定伺服器角色的成員可以設定或變更@owner_login_name的值。 若非 系統管理員 成員的使用者固定伺服器角色設定或更改 @owner_login_name 值,該儲存程序執行失敗並回傳錯誤。
Warning
SQL Server Agent在工作負責人的安全情境中執行 Transact-SQL 工作步驟。 如果你更改 @owner_login_name,這些步驟會在新主人的權限下執行。
範例
A. 新增作業
這個範例會新增名為 NightlyBackups的新作業。
USE msdb;
GO
EXECUTE dbo.sp_add_job @job_name = N'NightlyBackups';
GO
B. 新增具有呼叫器、電子郵件和 net send 資訊的作業
此範例會建立名為 Ad hoc Sales Data Backup 的作業,以在作業失敗時通知 François Ajenstat (依呼叫器、電子郵件或網路快顯訊息),並在成功完成時刪除作業。
注意
此範例假設名為 François Ajenstat 的運算符和名為 的 françoisa 登入已經存在。
USE msdb;
GO
EXECUTE 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
相關內容
- sp_add_schedule (Transact-SQL)
- sp_add_jobstep (Transact-SQL)
- sp_add_jobserver(Transact-SQL)
- sp_apply_job_to_targets (Transact-SQL)
- sp_delete_job (Transact-SQL)
- sp_delete_jobserver (Transact-SQL)
- sp_remove_job_from_targets (Transact-SQL)
- sp_help_job(Transact-SQL)
- sp_help_jobstep (Transact-SQL)
- sp_update_job (Transact-SQL)