共用方式為


sp_update_jobstep (Transact-SQL)

變更用來執行自動化活動之作業步驟的設定。

語法

sp_update_jobstep 
     {   [@job_id =] job_id 
       | [@job_name =] 'job_name' } ,
     [@step_id =] step_id
     [ , [@step_name =] 'step_name' ]
     [ , [@subsystem =] 'subsystem' ] 
     [ , [@command =] 'command' ]
     [ , [@additional_parameters =] 'parameters' ]
     [ , [@cmdexec_success_code =] success_code ]
     [ , [@on_success_action =] success_action ] 
     [ , [@on_success_step_id =] success_step_id ]
          [ , [@on_fail_action =] fail_action ] 
          [ , [@on_fail_step_id =] fail_step_id ]
     [ , [@server =] 'server' ] 
     [ , [@database_name =] 'database' ]
       [ , [@database_user_name =] 'user' ] 
     [ , [@retry_attempts =] retry_attempts ]
     [ , [@retry_interval =] retry_interval ] 
     [ , [@os_run_priority =] run_priority ]
     [ , [@output_file_name =] 'file_name' ] 
     [ , [@flags =] flags ]
     [ ,  {   [ @proxy_id = ] proxy_id 
            | [ @proxy_name = ] 'proxy_name' } 

引數

  • [ @job_id =] job_id
    這是步驟所屬之作業的識別碼。job_iduniqueidentifier,預設值是 NULL。您必須指定 job_idjob_name,但不能同時指定這兩者。
  • [ @job_name =] 'job_name'
    這是步驟所屬的作業名稱。job_namesysname,預設值是 NULL。您必須指定 job_idjob_name,但不能同時指定這兩者。
  • [ @step_id =] step_id
    要修改的作業步驟的識別碼。無法變更這個識別碼。step_idint,沒有預設值。
  • [ @step_name =] 'step_name'
    這是步驟的新名稱。step_namesysname,預設值是 NULL。
  • [ @subsystem =] 'subsystem'
    Microsoft SQL Server Agent 用來執行 command 的子系統。subsystemnvarchar(40),預設值是 NULL。
  • [ @command =] 'command'
    利用 subsystem 來執行的命令。commandnvarchar(max),預設值是 NULL。
  • [ @additional_parameters =] 'parameters'
    警告僅做為識別目的。不支援。我們無法保證未來的相容性。
  • [ @cmdexec_success_code =] success_code
    CmdExec 子系統命令傳回的值,指出 command 已執行成功。success_codeint,預設值是 NULL。
  • [ @on_success_action =] success_action
    步驟成功時所要執行的動作。success_actiontinyint,預設值是 NULL,且可以是下列其中一值。

    描述 (動作)

    1

    成功而結束

    2

    失敗而結束

    3

    移至下一步驟

    4

    移至步驟 success_step_id

  • [ @on_success_step_id =] success_step_id
    如果步驟成功且 success_action4,則為此作業中要執行之步驟的識別碼。success_step_idint,預設值是 NULL。
  • [ @on_fail_action =] fail_action
    步驟失敗時所要執行的動作。fail_actiontinyint,預設值是 NULL,且可以有下列其中一值。

    描述 (動作)

    1

    成功而結束。

    2

    失敗而結束。

    3

    移至下一步驟。

    4

    移至步驟 fail_step_id。

  • [ @on_fail_step_id =] fail_step_id
    如果步驟失敗且 fail_action4,則為此作業中要執行之步驟的識別碼。fail_step_idint,預設值是 NULL。
  • [ @server =] 'server'
    警告僅做為識別目的。不支援。我們無法保證未來的相容性。 servernvarchar(128),預設值是 NULL。
  • [ @database_name =] 'database'
    用以執行 Transact-SQL 步驟的資料庫名稱。databasesysname,預設值是 NULL。
  • [ @database_user_name =] 'user'
    執行 Transact-SQL 步驟時所用的使用者帳戶名稱。usersysname,預設值是 NULL。
  • [ @retry_attempts =] retry_attempts
    這個步驟失敗時的重試次數。retry_attemptsint,預設值是 NULL。
  • [ @retry_interval =] retry_interval
    重試的間隔時間 (以分鐘為單位)。retry_intervalint,預設值是 NULL。
  • [ @os_run_priority =] run_priority
    警告僅做為識別目的。不支援。我們無法保證未來的相容性。
  • [ @output_file_name =] 'file_name'
    儲存此步驟之輸出的檔案名稱。file_namenvarchar(200),預設值是 NULL。這個參數只對在 Transact-SQL 或 CmdExec 子系統中執行的命令有效。

    若要將 output_file_name 設為 NULL,您必須將 output_file_name 設為空字串 (' '),或設為空白字元字串,但您不能使用 CHAR(32) 函數。例如,依照下列方式,將這個引數設為空字串:

    @output_file_name = ' '

  • [ @flags =] flags
    控制行為的選項。flagsint,它可以是下列值之一。

    描述

    0 (預設值)

    覆寫輸出檔。

    2

    附加至輸出檔。

    4

    將 Transact-SQL 作業步驟輸出寫入步驟歷程記錄。

    8

    將記錄寫入資料表 (覆寫現有的歷程記錄)。

    16

    將記錄寫入資料表 (附加至現有的歷程記錄)。

  • [ @proxy_id= ] proxy_id
    用來執行作業步驟之 Proxy 的識別碼。proxy_id 的類型是 int,預設值是 NULL。如果 proxy_idproxy_nameuser_name 都沒有指定,就會用 SQL Server Agent 的服務帳戶來執行作業步驟。
  • [ @proxy_name= ] 'proxy_name'
    用來執行作業步驟之 Proxy 的名稱。proxy_name 的類型是 sysname,預設值是 NULL。如果 proxy_idproxy_nameuser_name 都沒有指定,就會用 SQL Server Agent 的服務帳戶來執行作業步驟。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_update_jobstep 必須從 msdb 資料庫中執行。

更新作業步驟會累加作業版本號碼。

權限

依預設,只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。其他使用者必須被授與 msdb 資料庫的下列其中一個 SQL Server Agent 固定資料庫角色。

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

如需有關這些角色權限的詳細資料,請參閱<SQL Server Agent 固定資料庫角色>。

只有系統管理員 (sysadmin) 的成員可以更新另一位使用者所擁有的作業步驟。

如果作業步驟需要存取 Proxy,作業步驟的建立者必須有權存取作業步驟的 Proxy。除了 Transact-SQL,所有子系統都需要 Proxy 帳戶。系統管理員 (sysadmin) 的成員有權存取所有 Proxy,且可以使用 Proxy 的 SQL Server Agent 服務帳戶。

範例

下列範例會變更 Weekly Sales Data Backup 作業之第一個步驟的重試次數。執行這個範例之後,重試次數是 10

USE msdb ;
GO

EXEC dbo.sp_update_jobstep
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 1,
    @retry_attempts = 10 ;
GO

請參閱

參考

sp_delete_jobstep (Transact-SQL)
sp_help_jobstep (Transact-SQL)
系統預存程序 (Transact-SQL)

其他資源

檢視與修改作業

說明及資訊

取得 SQL Server 2005 協助