sp_update_jobstep (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Managed Instance
Hiermee wijzigt u de instelling voor een stap in een taak die wordt gebruikt voor het uitvoeren van geautomatiseerde activiteiten in de SQL Server Agent-service.
Transact-SQL syntaxisconventies
Syntaxis
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' ]
[ ; ]
Argumenten
[ @job_id = ] 'job_id'
Het identificatienummer van de taak waartoe de stap behoort.
@job_id is uniqueidentifier-, met een standaardwaarde van NULL
.
Er moet @job_id of @job_name worden opgegeven, maar beide kunnen niet worden opgegeven.
[ @job_name = ] N'job_name'
De naam van de taak waartoe de stap behoort.
@job_name is sysname, met een standaardwaarde van NULL
.
Er moet @job_id of @job_name worden opgegeven, maar beide kunnen niet worden opgegeven.
[ @step_id = ] step_id
Het identificatienummer voor de taakstap die moet worden gewijzigd. @step_id is int, zonder standaardinstelling. Dit getal kan niet worden gewijzigd.
[ @step_name = ] N'step_name'
Een nieuwe naam voor de stap.
@step_name is sysname, met een standaardwaarde van NULL
.
[ @subsystem = ] N'subsysteem'
Het subsysteem dat door SQL Server Agent wordt gebruikt om @commanduit te voeren.
@subsystem is nvarchar(40), met een standaardwaarde van NULL
.
[ @command = ] Opdracht N''
De opdrachten die moeten worden uitgevoerd via @subsystem.
@command is nvarchar(max), met een standaardwaarde van NULL
.
[ @additional_parameters = ] N'additional_parameters'
Alleen ter informatie geïdentificeerd. Niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
[ @cmdexec_success_code = ] cmdexec_success_code
De waarde die wordt geretourneerd door een CmdExec subsysteemopdracht om aan te geven dat opdracht uitgevoerd.
@cmdexec_success_code is int, met een standaardwaarde van NULL
.
[ @on_success_action = ] on_success_action
De actie die moet worden uitgevoerd als de stap slaagt.
@on_success_action is kleine, met een standaardwaarde van NULL
, en kan een van deze waarden zijn.
Waarde | Beschrijving (actie) |
---|---|
1 |
Afsluiten met succes |
2 |
Afsluiten met fout |
3 |
Ga naar de volgende stap |
4 |
Ga naar stap @on_success_step_id |
[ @on_success_step_id = ] on_success_step_id
Het identificatienummer van de stap in deze taak die moet worden uitgevoerd als de stap slaagt en @on_success_action is 4
.
@on_success_step_id is int, met een standaardwaarde van NULL
.
[ @on_fail_action = ] on_fail_action
De actie die moet worden uitgevoerd als de stap mislukt. @on_fail_action is kleineen kan een van deze waarden hebben.
Waarde | Beschrijving (actie) |
---|---|
1 |
Afsluiten met succes |
2 |
Afsluiten met fout |
3 |
Ga naar de volgende stap |
4 |
Ga naar stap @on_fail_step_id |
[ @on_fail_step_id = ] on_fail_step_id
Het identificatienummer van de stap in deze taak die moet worden uitgevoerd als de stap mislukt en @on_fail_action is 4
.
@on_fail_step_id is int, met een standaardwaarde van NULL
.
[ @server = ] N'server'
Alleen ter informatie geïdentificeerd. Niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
[ @database_name = ] N'database_name'
De naam van de database waarin een Transact-SQL stap moet worden uitgevoerd.
@database_name is sysname, met een standaardwaarde van NULL
. Namen die tussen haakjes ([]
) staan, zijn niet toegestaan.
[ @database_user_name = ] N'database_user_name'
De naam van de databasegebruiker die moet worden gebruikt bij het uitvoeren van een Transact-SQL stap.
@database_user_name is sysname, met een standaardwaarde van NULL
.
[ @retry_attempts = ] retry_attempts
Het aantal nieuwe pogingen dat moet worden gebruikt als deze stap mislukt.
@retry_attempts is int, met een standaardwaarde van NULL
.
[ @retry_interval = ] retry_interval
De hoeveelheid tijd in minuten tussen nieuwe pogingen.
@retry_interval is int, met een standaardwaarde van NULL
.
[ @os_run_priority = ] os_run_priority
Alleen ter informatie geïdentificeerd. Niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
[ @output_file_name = ] N'output_file_name'
De naam van het bestand waarin de uitvoer van deze stap wordt opgeslagen.
@output_file_name is nvarchar(200), met een standaardwaarde van NULL
. Deze parameter is alleen geldig met opdrachten die worden uitgevoerd in Transact-SQL of CmdExec subsystemen.
Als u @output_file_name wilt terugzetten op NULL
, moet u @output_file_name instellen op een lege tekenreeks of op een tekenreeks met lege tekens, maar u kunt de functie CHAR(32)
niet gebruiken.
Stel dit argument bijvoorbeeld als volgt in op een lege tekenreeks:
@output_file_name = ' '
[ @flags = ] vlaggen
Een optie waarmee gedrag wordt bepaald.
@flags is int, met een standaardwaarde van NULL
.
Waarde | Beschrijving | Commentaar |
---|---|---|
0 (standaard) |
Uitvoerbestand overschrijven | |
2 |
Toevoegen aan uitvoerbestand | |
4 |
Uitvoer van Transact-SQL taakstap schrijven naar stapgeschiedenis | Toepassen op type: Transact-SQL, Analysis Services-opdracht en analysequery |
8 |
Logboek naar tabel schrijven (bestaande geschiedenis overschrijven) | |
16 |
Logboek naar tabel schrijven (toevoegen aan bestaande geschiedenis) | |
32 |
SSIS/CmdExe/PowerShell-taakstapuitvoer schrijven naar stapgeschiedenis | Toepassen op type: CmdExe-, PowerShell- en Integration Services-pakket |
[ @proxy_id = ] proxy_id
Het id-nummer van de proxy waarop de taakstap wordt uitgevoerd.
@proxy_id is int, met een standaardwaarde van NULL
. Als er geen @proxy_id is opgegeven, wordt er geen @proxy_name opgegeven en wordt er geen @database_user_name opgegeven, wordt de taakstap uitgevoerd als het serviceaccount voor SQL Server Agent.
[ @proxy_name = ] N'proxy_name'
De naam van de proxy die door de taakstap wordt uitgevoerd.
@proxy_name is sysname, met een standaardwaarde van NULL
. Als er geen @proxy_id is opgegeven, wordt er geen @proxy_name opgegeven en wordt er geen @database_user_name opgegeven, wordt de taakstap uitgevoerd als het serviceaccount voor SQL Server Agent.
Codewaarden retourneren
0
(geslaagd) of 1
(mislukt).
Opmerkingen
sp_update_jobstep
moet worden uitgevoerd vanuit de msdb
-database.
Als u een taakstap bijwerkt, wordt het versienummer van de taak verhoogd.
Deze opgeslagen procedure deelt de naam van sp_update_jobstep
met een vergelijkbaar object voor de Azure Elastic Jobs-service voor Azure SQL Database. Zie jobs.sp_update_jobstep (Azure Elastic Jobs)voor meer informatie over de versie van elastische taken.
Machtigingen
U kunt EXECUTE
machtigingen verlenen voor deze procedure, maar deze machtigingen worden mogelijk overschreven tijdens een SQL Server-upgrade.
Andere gebruikers moeten een van de volgende vaste sql Server Agent-databaserollen in de msdb
-database krijgen:
- SQLAgentUserRole-
- SQLAgentReaderRole-
- SQLAgentOperatorRole-
Zie sql Server Agent vaste databaserollenvoor meer informatie over de machtigingen van deze rollen.
Alleen leden van sysadmin kunnen een taakstap bijwerken van een taak die eigendom is van een andere gebruiker.
Als voor de taakstap toegang tot een proxy is vereist, moet de maker van de taakstap toegang hebben tot de proxy voor de taakstap. Voor alle subsystemen, behalve Transact-SQL, is een proxyaccount vereist. Leden van sysadmin toegang hebben tot alle proxy's en kunnen het serviceaccount van de SQL Server Agent voor de proxy gebruiken.
Voorbeelden
In het volgende voorbeeld wordt het aantal nieuwe pogingen voor de eerste stap van de Weekly Sales Data Backup
taak gewijzigd. Nadat u dit voorbeeld hebt uitgevoerd, wordt het aantal nieuwe pogingen 10
.
USE msdb;
GO
EXECUTE dbo.sp_update_jobstep
@job_name = N'Weekly Sales Data Backup',
@step_id = 1,
@retry_attempts = 10;
GO