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.
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 NULL
a 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ématu
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
Související obsah
- zobrazení nebo úpravy úloh
- sp_delete_jobstep (Transact-SQL)
-
sp_help_jobstep (Transact-SQL) - uložené procedury agenta SQL Serveru (Transact-SQL)