Freigeben über


sp_update_jobstep (Transact-SQL)

Ändert die Einstellung für einen Schritt eines Auftrags, mit dem automatische Aktivitäten ausgeführt werden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_update_jobstep 
     {   [@job_id =] job_id 
       | [@job_name =] 'job_name' } ,
     [@step_id =] step_id
     [ , [@step_name =] 'step_name' ]
     [ , [@subsystem =] 'subsystem' ] 
     [ , [@command =] 'command' ]
     [ , [@additional_parameters =] 'parameters' ]
     [ , [@cmdexec_success_code =] success_code ]
     [ , [@on_success_action =] success_action ] 
     [ , [@on_success_step_id =] success_step_id ]
          [ , [@on_fail_action =] fail_action ] 
          [ , [@on_fail_step_id =] fail_step_id ]
     [ , [@server =] 'server' ] 
     [ , [@database_name =] 'database' ]
     [ , [@database_user_name =] 'user' ] 
     [ , [@retry_attempts =] retry_attempts ]
     [ , [@retry_interval =] retry_interval ] 
     [ , [@os_run_priority =] run_priority ]
     [ , [@output_file_name =] 'file_name' ] 
     [ , [@flags =] flags ]
     [ ,  {   [ @proxy_id = ] proxy_id 
            | [ @proxy_name = ] 'proxy_name' } 

Argumente

  • [ @job_id =] job_id
    Die ID des Auftrags, zu dem der Schritt gehört. job_id ist vom Datentyp uniqueidentifier und hat den Standardwert NULL. Es muss entweder job_id oder job_name angegeben werden, aber beide Angaben sind nicht möglich.

  • [ @job_name =] 'job_name'
    Der Name des Auftrags, zu dem der Schritt gehört. job_name ist vom Datentyp sysname und hat den Standardwert NULL. Es muss entweder job_id oder job_name angegeben werden, aber beide Angaben sind nicht möglich.

  • [ @step_id =] step_id
    Die ID des Auftragsschrittes, der geändert werden soll. Diese Nummer kann nicht geändert werden. step_id ist vom Datentyp int und hat keinen Standardwert.

  • [ @step_name =] 'step_name'
    Der neue Name des Schrittes. step_name ist vom Datentyp sysname; der Standardwert ist NULL.

  • [ @subsystem =] 'subsystem'
    Das vom Microsoft SQL Server-Agent zum Ausführen von command verwendete Subsystem. subsystem ist vom Datentyp nvarchar(40); der Standardwert ist NULL.

  • [ @command =] 'command'
    Der bzw. die über subsystem auszuführende(n) Befehl(e). command ist vom Datentyp nvarchar(max); der Standardwert ist NULL.

  • [ @additional_parameters =] 'parameters'
    Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

  • [ @cmdexec_success_code =] success_code
    Der von einem CmdExec-Subsystembefehl zurückgegebene Wert, der anzeigt, dass command erfolgreich ausgeführt wurde. success_code ist vom Datentyp int; der Standardwert ist NULL.

  • [ @on_success_action =] success_action
    Die Aktion, die ausgeführt werden soll, wenn der Schritt erfolgreich ausgeführt wurde. success_action ist vom Datentyp tinyint; der Standardwert ist NULL. Die folgenden Werte sind möglich:

    Wert

    Beschreibung (Aktion)

    1

    Beenden mit Erfolg

    2

    Beenden mit Fehler

    3

    Gehe zum nächsten Schritt

    4

    Gehe zu Schritt success_step_id.

  • [ @on_success_step_id =] success_step_id
    Die ID des Auftragsschrittes, der ausgeführt werden soll, wenn der Schritt erfolgreich ausgeführt wurde und success_action gleich 4 ist. success_step_id ist vom Datentyp int; der Standardwert ist NULL.

  • [ @on_fail_action =] fail_action
    Die Aktion, die ausgeführt werden soll, wenn der Schritt fehlschlägt. fail_action ist vom Datentyp tinyint; der Standardwert ist NULL. Die folgenden Werte sind möglich:

    Wert

    Beschreibung (Aktion)

    1

    Beenden mit Erfolg

    2

    Beenden mit Fehler

    3

    Gehe zum nächsten Schritt

    4

    Gehe zu Schritt fail_step_id.

  • [ @on_fail_step_id =] fail_step_id
    Die ID des Auftragsschrittes, der ausgeführt werden soll, wenn der Schritt fehlschlägt und fail_action gleich 4 ist. fail_step_id ist vom Datentyp int; der Standardwert ist NULL.

  • [ @server =] 'server'
    Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.server ist ein Wert vom Datentyp nvarchar(128). Der Standardwert ist NULL.

  • [ @database_name =] 'database'
    Der Name der Datenbank, in der ein Transact-SQL-Schritt ausgeführt werden soll. databaseist vom Datentyp sysname. In eckige Klammern ([ ]) eingeschlossene Namen sind nicht zulässig. Der Standardwert ist NULL.

  • [ @database_user_name =] user
    Der Name des Benutzerkontos, das beim Ausführen eines Transact-SQL-Schrittes verwendet werden soll. userist vom Datentyp sysname, der Standardwert ist NULL.

  • [ @retry_attempts =] retry_attempts
    Die Anzahl der Wiederholungsversuche für den Fall, dass dieser Schritt fehlschlägt. retry_attempts ist vom Datentyp int; der Standardwert ist NULL.

  • [ @retry_interval =] retry_interval
    Der Zeitraum in Minuten zwischen zwei Wiederholungsversuchen. retry_interval ist vom Datentyp int. Der Standardwert ist NULL.

  • [ @os_run_priority =] run_priority
    Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

  • [ @output_file_name =] file_name
    Der Name der Datei, in der die Ausgabe dieses Schrittes gespeichert wird. file_name ist vom Datentyp nvarchar(200); der Standardwert ist NULL. Dieser Parameter ist nur mit Befehlen gültig, die in Transact-SQL- oder CmdExec-Subsystemen ausgeführt werden.

    Sie können output_file_name auf NULL zurücksetzen, wenn Sie output_file_name auf eine leere Zeichenfolge (' ') oder auf eine Zeichenfolge mit Leerzeichen zurücksetzen. Die CHAR(32)-Funktion kann jedoch nicht verwendet werden. Sie können dieses Argument z. B. wie folgt auf eine leere Zeichenfolge festlegen:

    @output_file_name = ' '

  • [ @flags =] flags
    Eine Option, die das Verhalten steuert. flags ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    0 (Standardwert)

    Ausgabedatei überschreiben.

    2

    An Ausgabedatei anfügen

    4

    Ausgabe des Transact-SQL-Auftragsschrittes in Schrittverlauf schreiben

    8

    Protokoll in Tabelle schreiben (vorhandenen Verlauf überschreiben)

    16

    Protokoll in Tabelle schreiben (an vorhandenen Verlauf anfügen)

  • [ @proxy_id= ] proxy_id
    Die ID des Proxys, als die der Auftragsschritt ausgeführt wird. proxy_id ist vom Datentyp int und hat den Standardwert NULL. Wenn proxy_id, proxy_name und user_name nicht angegeben werden, wird der Auftragsschritt als Dienstkonto für den SQL Server-Agent ausgeführt.

  • [ @proxy_name= ] 'proxy_name'
    Der Name des Proxys, als der der Auftragsschritt ausgeführt wird. proxy_name ist vom Datentyp sysname und hat den Standardwert NULL. Wenn proxy_id, proxy_name und user_name nicht angegeben werden, wird der Auftragsschritt als Dienstkonto für den SQL Server-Agent ausgeführt.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_update_jobstep muss in der msdb-Datenbank ausgeführt werden.

Beim Aktualisieren eines Auftragsschrittes wird die Versionsnummer des Auftrags erhöht.

Berechtigungen

Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin diese gespeicherte Prozedur ausführen. Anderen Benutzern muss eine der folgenden festen Datenbankrollen des SQL Server-Agents in der msdb-Datenbank zugewiesen werden:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Weitere Informationen zu den Berechtigungen dieser Rollen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.

Nur Mitglieder der sysadmin-Serverrolle können einen Auftragsschritt aktualisieren, dessen Besitzer ein anderer Benutzer ist.

Falls für den Auftragsschritt der Zugriff auf einen Proxy erforderlich ist, muss der Ersteller des Auftragsschrittes Zugriff auf den Proxy für den Auftragsschritt haben. Alle Subsysteme außer Transact-SQL erfordern ein Proxykonto. Mitglieder der sysadmin-Serverrolle haben Zugriff auf alle Proxys und können auf diesen das SQL Server-Agent-Dienstkonto verwenden.

Beispiele

Im folgenden Beispiel wird die Anzahl der Wiederholungsversuche für den ersten Schritt des Weekly Sales Data Backup-Auftrags geändert. Nach Ausführung dieses Beispiels ist die Anzahl der Wiederholungsversuche auf 10 festgelegt.

USE msdb ;
GO

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