sp_update_job (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
更新在 SQL Server Agent 服務中建立之現有作業的屬性。
語法
sp_update_job
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @new_name = ] N'new_name' ]
[ , [ @enabled = ] enabled ]
[ , [ @description = ] N'description' ]
[ , [ @start_step_id = ] start_step_id ]
[ , [ @category_name = ] N'category_name' ]
[ , [ @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 ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
引數
[ @job_id = ] 'job_id'
要更新之作業的標識碼。 @job_id為 uniqueidentifier,預設值為 NULL
。
必須指定@job_id或@job_name,但無法指定兩者。
[ @job_name = ] N'job_name'
作業的名稱。 @job_name為 sysname,預設值為 NULL
。
必須指定@job_id或@job_name,但無法指定兩者。
[ @new_name = ] N'new_name'
作業的新名稱。 @new_name為 sysname,預設值為 NULL
。
[ @enabled = ] enabled
指定是否啟用作業 (1
) 或未啟用 。0
@enabled為 tinyint,預設值為 NULL
。
[ @description = ] N'description'
這是作業的描述。 @description為 nvarchar(512),預設值為 NULL
。
[ @start_step_id = ] start_step_id
要針對作業執行之第一個步驟的標識碼。 @start_step_id為 int,預設值為 NULL
。
[ @category_name = ] N'category_name'
作業的類別。 @category_name為 sysname,預設值為 NULL
。
[ @owner_login_name = ] N'owner_login_name'
擁有作業的登入名稱。 @owner_login_name為 sysname,預設值為 NULL
。 只有系統管理員固定伺服器角色的成員可以變更作業擁有權。
[ @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,預設值為 NULL
。 @notify_level_email使用與@notify_level_eventlog相同的值。
[ @notify_level_netsend = ] notify_level_netsend
指定完成此作業時傳送網路訊息的時機。 @notify_level_netsend為 int,預設值為 NULL
。 @notify_level_netsend使用與@notify_level_eventlog相同的值。
[ @notify_level_page = ] notify_level_page
指定完成此作業時傳送頁面的時機。 @notify_level_page為 int,預設值為 NULL
。 @notify_level_page使用與@notify_level_eventlog相同的值。
[ @notify_email_operator_name = ] N'notify_email_operator_name'
到達email_level時,傳送電子郵件的操作員名稱。 @notify_email_operator_name為 sysname,預設值為 NULL
。
[ @notify_netsend_operator_name = ] N'notify_netsend_operator_name'
傳送網路訊息的操作員名稱。 @notify_netsend_operator_name為 sysname,預設值為 NULL
。
[ @notify_page_operator_name = ] N'notify_page_operator_name'
傳送頁面的操作員名稱。 @notify_page_operator_name為 sysname,預設值為 NULL
。
[ @delete_level = ] delete_level
指定刪除作業的時機。 @delete_level 為 int,預設值為 NULL
。 @delete_level使用與@notify_level_eventlog相同的值。
[ @automatic_post = ] automatic_post
僅供參考之用。 不支援。 我們無法保證未來的相容性。
傳回碼值
0
(成功) 或 1
(失敗)。
備註
sp_update_job
必須從 msdb
資料庫執行。
sp_update_job
只會變更提供參數值的設定。 如果省略參數,則會保留目前的設定。
此預存程式會與 Azure SQL 資料庫 的 Azure Elastic Jobs 服務類似物件共用 的名稱sp_update_job
。 如需彈性作業版本的相關信息,請參閱 jobs.sp_update_job (Azure Elastic Jobs) 。
權限
此預存程式是由 db_owner 角色所擁有。 您可以授與 EXECUTE
任何用戶的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。
其他用戶必須在資料庫中獲得下列其中一個 SQL Server Agent 固定資料庫角色 msdb
:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
如需這些角色權限的詳細資訊,請參閱 SQL Server Agent 固定資料庫角色。
只有 sysadmin 的成員可以使用這個預存程式來編輯其他用戶擁有之作業的屬性。
範例
下列範例會變更作業 NightlyBackups
的名稱、描述和啟用狀態。
USE msdb;
GO
EXEC dbo.sp_update_job
@job_name = N'NightlyBackups',
@new_name = N'NightlyBackups -- Disabled',
@description = N'Nightly backups disabled during server migration.',
@enabled = 0;
GO