Sdílet prostřednictvím


sp_update_jobstep (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Změní nastavení kroku v úloze, která se používá k provádění automatizovaných aktivit ve službě agenta SQL Serveru.

Transact-SQL konvence syntaxe

Syntax

sp_update_jobstep
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @step_id = ] step_id
    [ , [ @step_name = ] N'step_name' ]
    [ , [ @subsystem = ] N'subsystem' ]
    [ , [ @command = ] N'command' ]
    [ , [ @additional_parameters = ] N'additional_parameters' ]
    [ , [ @cmdexec_success_code = ] cmdexec_success_code ]
    [ , [ @on_success_action = ] on_success_action ]
    [ , [ @on_success_step_id = ] on_success_step_id ]
    [ , [ @on_fail_action = ] on_fail_action ]
    [ , [ @on_fail_step_id = ] on_fail_step_id ]
    [ , [ @server = ] N'server' ]
    [ , [ @database_name = ] N'database_name' ]
    [ , [ @database_user_name = ] N'database_user_name' ]
    [ , [ @retry_attempts = ] retry_attempts ]
    [ , [ @retry_interval = ] retry_interval ]
    [ , [ @os_run_priority = ] os_run_priority ]
    [ , [ @output_file_name = ] N'output_file_name' ]
    [ , [ @flags = ] flags ]
    [ , [ @proxy_id = ] proxy_id ]
    [ , [ @proxy_name = ] N'proxy_name' ]
[ ; ]

Argumenty

[ @job_id = ] 'job_id'

Identifikační číslo úlohy, do které krok patří. @job_id je uniqueidentifier s výchozím NULL.

Je nutné zadat @job_id nebo @job_name, ale obojí nelze zadat.

[ @job_name = ] N'job_name'

Název úlohy, do které krok patří. @job_name je sysname , s výchozím NULL.

Je nutné zadat @job_id nebo @job_name, ale obojí nelze zadat.

[ @step_id = ] step_id

Identifikační číslo kroku úlohy, který se má upravit. @step_id je , bez výchozího nastavení. Toto číslo nejde změnit.

[ @step_name = ] N'step_name'

Nový název kroku. @step_name je sysname , s výchozím NULL.

[ @subsystem = ] N'subsystému'

Subsystém používaný agentem SQL Serveru ke spuštění @command. @subsystem je nvarchar(40), s výchozím nastavením NULL.

[ @command = ] PříkazN

Příkazy, které se mají provést prostřednictvím @subsystem. @command je nvarchar(max), s výchozím nastavením NULL.

[ @additional_parameters = ] N'additional_parameters'

Určeno pouze pro informační účely. Nepodporuje se. Budoucí kompatibilita není zaručena.

[ @cmdexec_success_code = ] cmdexec_success_code

Hodnota vrácená příkazem subsystému CmdExec označující, že příkaz úspěšně spuštěn. @cmdexec_success_code je , s výchozím nastavením NULL.

[ @on_success_action = ] on_success_action

Akce, která se má provést, pokud je krok úspěšný. @on_success_action je tinyint, s výchozím nastavením NULLa může být jednou z těchto hodnot.

Hodnota Popis (akce)
1 Ukončení s úspěchem
2 Ukončení s chybou
3 Přejít k dalšímu kroku
4 Přechod na krok @on_success_step_id

[ @on_success_step_id = ] on_success_step_id

Identifikační číslo kroku v této úloze, který se má provést, pokud je krok úspěšný a @on_success_action je 4. @on_success_step_id je int s výchozím nastavením NULL.

[ @on_fail_action = ] on_fail_action

Akce, která se má provést, pokud krok selže. @on_fail_action je tinyinta může mít jednu z těchto hodnot.

Hodnota Popis (akce)
1 Ukončení s úspěchem
2 Ukončení s chybou
3 Přejít k dalšímu kroku
4 Přechod na krok @on_fail_step_id

[ @on_fail_step_id = ] on_fail_step_id

Identifikační číslo kroku v této úloze, který se má provést, pokud se krok nezdaří a @on_fail_action je 4. @on_fail_step_id je ints výchozím NULL.

[ @server = ] N' server'

Určeno pouze pro informační účely. Nepodporuje se. Budoucí kompatibilita není zaručena.

[ @database_name = ] N'database_name'

Název databáze, ve které se má provést Transact-SQL krok. @database_name je sysname , s výchozím NULL. Názvy, které jsou uzavřeny v hranatých závorkách ([]), nejsou povolené.

[ @database_user_name = ] N'database_user_name'

Název uživatele databáze, který se má použít při provádění kroku Transact-SQL. @database_user_name je sysname , s výchozím NULL.

[ @retry_attempts = ] retry_attempts

Počet pokusů o opakování, které se mají použít, pokud tento krok selže. @retry_attempts je ints výchozím nastavením NULL.

[ @retry_interval = ] retry_interval

Doba v minutách mezi opakovanými pokusy. @retry_interval je ints výchozím nastavením NULL.

[ @os_run_priority = ] os_run_priority

Určeno pouze pro informační účely. Nepodporuje se. Budoucí kompatibilita není zaručena.

[ @output_file_name = ] N'output_file_name'

Název souboru, ve kterém je uložen výstup tohoto kroku. @output_file_name je nvarchar(200), s výchozím NULL. Tento parametr je platný pouze u příkazů spuštěných v subsystémech Transact-SQL nebo CmdExec.

Pokud chcete nastavit @output_file_name zpět na NULL, musíte nastavit @output_file_name na prázdný řetězec nebo na řetězec prázdných znaků, ale nemůžete použít funkci CHAR(32).

Například tento argument nastavte na prázdný řetězec následujícím způsobem:

@output_file_name = ' '

[ @flags = ] příznaky

Možnost, která řídí chování. @flags je ints výchozím nastavením NULL.

Hodnota Popis Komentář
0 (výchozí) Přepsání výstupního souboru
2 Připojení k výstupnímu souboru
4 Zápis výstupu kroku Transact-SQL úlohy do historie kroků Platí pro typ: Transact-SQL, příkaz Analysis Services a dotaz analýzy
8 Zápis protokolu do tabulky (přepsání existující historie)
16 Zápis protokolu do tabulky (připojení k existující historii)
32 Zápis výstupu kroku úlohy SSIS/CmdExe/PowerShellu do historie kroků Platí pro typ: CmdExe, PowerShell a balíček integračních služeb

[ @proxy_id = ] proxy_id

Číslo ID proxy serveru, který krok úlohy spustí jako. @proxy_id je int, s výchozím nastavením NULL. Pokud není zadán žádný @proxy_id, není zadán žádný @proxy_name a není zadán žádný @database_user_name, krok úlohy se spustí jako účet služby pro agenta SQL Serveru.

[ @proxy_name = ] N'proxy_name'

Název proxy serveru, který krok úlohy spustí jako. @proxy_name je sysname , s výchozím NULL. Pokud není zadán žádný @proxy_id, není zadán žádný @proxy_name a není zadán žádný @database_user_name, krok úlohy se spustí jako účet služby pro agenta SQL Serveru.

Návratové hodnoty kódu

0 (úspěch) nebo 1 (selhání).

Poznámky

sp_update_jobstep musí být spuštěna z databáze msdb.

Aktualizace kroku úlohy zvýší číslo verze úlohy.

Tato uložená procedura sdílí název sp_update_jobstep s podobným objektem pro službu Azure Elastic Jobs pro službu Azure SQL Database. Informace o verzi elastických úloh najdete v tématujobs.sp_update_jobstep (Azure Elastic Jobs).

Dovolení

K tomuto postupu můžete udělit oprávnění EXECUTE, ale tato oprávnění se můžou při upgradu SQL Serveru přepsat.

Jiným uživatelům musí být udělena jedna z následujících pevných databázových rolí agenta SQL Serveru v databázi msdb:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • sqlAgentOperatorRole

Podrobnosti o oprávněních těchto rolí najdete v tématu Role pevné databáze agenta SQL Serveru.

Pouze členové správce systému mohou aktualizovat krok úlohy vlastněné jiným uživatelem.

Pokud krok úlohy vyžaduje přístup k proxy serveru, musí mít tvůrce kroku úlohy přístup k proxy pro krok úlohy. Všechny subsystémy kromě jazyka Transact-SQL vyžadují účet proxy. Členové správce systému mají přístup ke všem proxy serverům a mohou pro proxy server použít účet služby agenta SQL Serveru.

Příklady

Následující příklad změní počet opakovaných pokusů o první krok úlohy Weekly Sales Data Backup. Po spuštění tohoto příkladu se počet opakovaných pokusů 10.

USE msdb;
GO

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