sp_update_jobstep (Transact-SQL)
gäller för:SQL ServerAzure SQL Managed Instance
Ändrar inställningen för ett steg i ett jobb som används för att utföra automatiserade aktiviteter i SQL Server Agent-tjänsten.
Transact-SQL syntaxkonventioner
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' ]
[ ; ]
Argument
[ @job_id = ] "job_id"
Identifieringsnumret för det jobb som steget tillhör.
@job_id är unikidentifierare, med standardvärdet NULL
.
Antingen @job_id eller @job_name måste anges, men båda kan inte anges.
[ @job_name = ] N'job_name'
Namnet på det jobb som steget tillhör.
@job_name är sysname, med standardvärdet NULL
.
Antingen @job_id eller @job_name måste anges, men båda kan inte anges.
[ @step_id = ] step_id
Identifieringsnumret för jobbsteget som ska ändras. @step_id är int, utan standard. Det går inte att ändra det här numret.
[ @step_name = ] N'step_name'
Ett nytt namn för steget.
@step_name är sysname, med standardvärdet NULL
.
[ @subsystem = ] N'undersystem"
Det undersystem som används av SQL Server Agent för att köra @command.
@subsystem är nvarchar(40), med standardvärdet NULL
.
[ @command = ] Kommandot N
De kommandon som ska köras via @subsystem.
@command är nvarchar(max), med standardvärdet NULL
.
[ @additional_parameters = ] N'additional_parameters'
Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
[ @cmdexec_success_code = ] cmdexec_success_code
Värdet som returneras av ett CmdExec undersystemkommando som anger att kommando har körts.
@cmdexec_success_code är int, med standardvärdet NULL
.
[ @on_success_action = ] on_success_action
Åtgärden som ska utföras om steget lyckas.
@on_success_action är tinyint, med standardvärdet NULL
och kan vara ett av dessa värden.
Värde | Beskrivning (åtgärd) |
---|---|
1 |
Avsluta med framgång |
2 |
Avsluta med fel |
3 |
Gå till nästa steg |
4 |
Gå till steg @on_success_step_id |
[ @on_success_step_id = ] on_success_step_id
Identifieringsnumret för det steg i det här jobbet som ska köras om steget lyckas och @on_success_action är 4
.
@on_success_step_id är int, med standardvärdet NULL
.
[ @on_fail_action = ] on_fail_action
Åtgärden som ska utföras om steget misslyckas. @on_fail_action är tinyintoch kan ha ett av dessa värden.
Värde | Beskrivning (åtgärd) |
---|---|
1 |
Avsluta med framgång |
2 |
Avsluta med fel |
3 |
Gå till nästa steg |
4 |
Gå till steg @on_fail_step_id |
[ @on_fail_step_id = ] on_fail_step_id
Identifieringsnumret för det steg i det här jobbet som ska köras om steget misslyckas och @on_fail_action är 4
.
@on_fail_step_id är int, med standardvärdet NULL
.
[ @server = ] N'server'
Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
[ @database_name = ] N'database_name'
Namnet på databasen där ett Transact-SQL steg ska köras.
@database_name är sysname, med standardvärdet NULL
. Namn som omges av hakparenteser ([]
) tillåts inte.
[ @database_user_name = ] N'database_user_name'
Namnet på den databasanvändare som ska användas vid körning av ett Transact-SQL steg.
@database_user_name är sysname, med standardvärdet NULL
.
[ @retry_attempts = ] retry_attempts
Antalet försök att använda igen om det här steget misslyckas.
@retry_attempts är int, med standardvärdet NULL
.
[ @retry_interval = ] retry_interval
Hur lång tid det tar i minuter mellan återförsök.
@retry_interval är int, med standardvärdet NULL
.
[ @os_run_priority = ] os_run_priority
Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
[ @output_file_name = ] N'output_file_name'
Namnet på filen där utdata från det här steget sparas.
@output_file_name är nvarchar(200), med standardvärdet NULL
. Den här parametern är endast giltig med kommandon som körs i Transact-SQL eller CmdExec undersystem.
Om du vill ange @output_file_name tillbaka till NULL
måste du ange @output_file_name till en tom sträng eller till en sträng med tomma tecken, men du kan inte använda funktionen CHAR(32)
.
Ställ till exempel in det här argumentet på en tom sträng enligt följande:
@output_file_name = ' '
[ @flags = ] flaggor
Ett alternativ som styr beteendet.
@flags är int, med standardvärdet NULL
.
Värde | Beskrivning | Kommentar |
---|---|---|
0 (standard) |
Skriv över utdatafil | |
2 |
Lägg till i utdatafilen | |
4 |
Skriv utdata Transact-SQL jobbsteg till steghistorik | Tillämpa på typ: Transact-SQL, Analysis Services-kommando och analysfråga |
8 |
Skriv logg till tabell (skriv över befintlig historik) | |
16 |
Skrivlogg till tabell (lägg till i befintlig historik) | |
32 |
Skriv utdata för SSIS/CmdExe/PowerShell-jobbsteg till steghistorik | Använd för typ: CmdExe, PowerShell och Integration Services-paketet |
[ @proxy_id = ] proxy_id
ID-numret för proxyn som jobbsteget körs som.
@proxy_id är int, med standardvärdet NULL
. Om ingen @proxy_id anges anges inga @proxy_name och inga @database_user_name anges körs jobbsteget som tjänstkonto för SQL Server Agent.
[ @proxy_name = ] N'proxy_name'
Namnet på proxyn som jobbsteget körs som.
@proxy_name är sysname, med standardvärdet NULL
. Om ingen @proxy_id anges anges inga @proxy_name och inga @database_user_name anges körs jobbsteget som tjänstkonto för SQL Server Agent.
Returnera kodvärden
0
(lyckades) eller 1
(fel).
Anmärkningar
sp_update_jobstep
måste köras från msdb
-databasen.
Om du uppdaterar ett jobbsteg ökas jobbversionsnumret.
Den här lagrade proceduren delar namnet på sp_update_jobstep
med ett liknande objekt för tjänsten Azure Elastic Jobs för Azure SQL Database. Information om versionen av elastiska jobb finns i jobs.sp_update_jobstep (Azure Elastic Jobs).
Behörigheter
Du kan bevilja EXECUTE
behörigheter för den här proceduren, men dessa behörigheter kan åsidosättas under en SQL Server-uppgradering.
Andra användare måste beviljas någon av följande fasta databasroller för SQL Server Agent i msdb
-databasen:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Mer information om behörigheterna för dessa roller finns i SQL Server Agent Fixed Database Roles.
Endast medlemmar i sysadmin kan uppdatera ett jobbsteg för ett jobb som ägs av en annan användare.
Om jobbsteget kräver åtkomst till en proxy måste jobbstegets skapare ha åtkomst till proxyn för jobbsteget. Alla undersystem, förutom Transact-SQL, kräver ett proxykonto. Medlemmar i sysadmin har åtkomst till alla proxyservrar och kan använda SQL Server Agent-tjänstkontot för proxyn.
Exempel
I följande exempel ändras antalet återförsök för det första steget i det Weekly Sales Data Backup
jobbet. När du har kört det här exemplet är antalet återförsök 10
.
USE msdb;
GO
EXECUTE dbo.sp_update_jobstep
@job_name = N'Weekly Sales Data Backup',
@step_id = 1,
@retry_attempts = 10;
GO