Delen via


sp_update_jobstep (Transact-SQL)

van toepassing op:SQL ServerAzure 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