sp_update_job (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Aktualisiert die Attribute eines vorhandenen Auftrags, der im SQL Server-Agent-Dienst erstellt wurde.

Transact-SQL-Syntaxkonventionen

Syntax

dbo.sp_update_job
    { [ @job_id = ] 'job_id'
        | [ @job_name = ] N'job_name' }
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @description = ] N'description' ]
    [ , [ @start_step_id = ] start_step_id ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @owner_login_name = ] N'owner_login_name' ]
    [ , [ @notify_level_eventlog = ] notify_level_eventlog ]
    [ , [ @notify_level_email = ] notify_level_email ]
    [ , [ @notify_level_netsend = ] notify_level_netsend ]
    [ , [ @notify_level_page = ] notify_level_page ]
    [ , [ @notify_email_operator_name = ] N'notify_email_operator_name' ]
    [ , [ @notify_netsend_operator_name = ] N'notify_netsend_operator_name' ]
    [ , [ @notify_page_operator_name = ] N'notify_page_operator_name' ]
    [ , [ @delete_level = ] delete_level ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Argumente

[ @job_id = ] 'job_id'

Die ID des Auftrags, der aktualisiert werden soll. @job_id ist eindeutiger Bezeichner mit einem Standardwert von NULL.

Entweder @job_id oder @job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.

[ @job_name = ] N'job_name'

Der Name des Auftrags. @job_name ist "sysname" mit der Standardeinstellung "NULL.

Entweder @job_id oder @job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.

[ @new_name = ] N'new_name'

Der neue Name des Auftrags. @new_name ist "sysname" mit der Standardeinstellung "NULL.

[ @enabled = ] aktiviert

Gibt an, ob der Auftrag aktiviert (1) oder nicht aktiviert ist (0). @enabled ist winzig, mit einem Standardwert von NULL.

[ @description = ] N'description'

Die Beschreibung des Auftrags. @description ist nvarchar(512), mit einem Standardwert von NULL.

[ @start_step_id = ] start_step_id

Die ID des ersten Schritts zum Ausführen des Auftrags. @start_step_id ist int, mit einem Standardwert von NULL.

[ @category_name = ] N'category_name'

Die Auftragskategorie.

[ @owner_login_name = ] N'owner_login_name'

Der Name der Anmeldung, die im Besitz des Auftrags ist. @owner_login_name ist "sysname" mit einem Standardwert von NULL. Nur Mitglieder der festen Serverrolle "sysadmin " können den Auftragsbesitz ändern.

Warning

SQL Server-Agent führt Transact-SQL Arbeitsschritte im Sicherheitskontext des Jobinhabers durch. Wenn du @owner_login_name änderst, laufen diese Schritte unter den Erlaubnissen des neuen Besitzers.

[ @notify_level_eventlog = ] notify_level_eventlog

Gibt an, wann für diesen Auftrag ein Eintrag im Microsoft Windows-Anwendungsprotokoll eingefügt werden soll. @notify_level_eventlog ist int und kann einer dieser Werte sein.

Wert Beschreibung (Aktion)
0 Nie
1 Bei Erfolg
2 Bei Fehler
3 Always

[ @notify_level_email = ] notify_level_email

Gibt an, wann nach dem Abschluss dieses Auftrags eine E-Mail gesendet werden soll. @notify_level_email ist int mit einem Standardwert von NULL. @notify_level_email verwendet dieselben Werte wie @notify_level_eventlog.

[ @notify_level_netsend = ] notify_level_netsend

Gibt an, wann nach dem Abschluss dieses Auftrags eine Netzwerkmeldung gesendet werden soll. @notify_level_netsend ist int, mit einem Standardwert von NULL. @notify_level_netsend verwendet dieselben Werte wie @notify_level_eventlog.

[ @notify_level_page = ] notify_level_page

Gibt an, wann nach dem Abschluss dieses Auftrags eine Seite gesendet werden soll. @notify_level_page ist int mit einem Standardwert von NULL. @notify_level_page verwendet dieselben Werte wie @notify_level_eventlog.

[ @notify_email_operator_name = ] N'notify_email_operator_name'

Der Name des Operators, an den die E-Mail gesendet wird, wenn email_level erreicht ist. @notify_email_operator_name ist "sysname" mit einem Standardwert von NULL.

[ @notify_netsend_operator_name = ] N'notify_netsend_operator_name'

Der Name des Operators, an den die Netzwerknachricht gesendet wird. @notify_netsend_operator_name ist "sysname" mit der Standardeinstellung "NULL.

[ @notify_page_operator_name = ] N'notify_page_operator_name'

Der Name des Operators, an den eine Seite gesendet wird.

[ @delete_level = ] delete_level

Gibt an, wann der Auftrag gelöscht werden soll. @delete_level ist int, mit einem Standardwert von NULL. @delete_level verwendet dieselben Werte wie @notify_level_eventlog.

[ @automatic_post = ] automatic_post

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_update_job muss aus der msdb Datenbank ausgeführt werden.

sp_update_job ändert nur die Einstellungen, für die Parameterwerte angegeben werden. Wird ein Parameter nicht angegeben, wird die aktuelle Einstellung beibehalten.

Diese gespeicherte Prozedur teilt den Namen sp_update_job mit einem ähnlichen Objekt für den Azure Elastic Jobs-Dienst für Azure SQL-Datenbank. Informationen zur Version der elastischen Aufträge finden Sie unter jobs.sp_update_job (Azure Elastic Jobs).

Berechtigungen

Sie können Berechtigungen für dieses Verfahren erteilen EXECUTE , aber diese Berechtigungen können während eines SQL Server-Upgrades außer Kraft gesetzt werden.

Anderen Benutzern muss eine der folgenden SQL Server-Agent festen Datenbankrollen in der msdb Datenbank gewährt werden:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

Nur Mitglieder von sysadmin können diese gespeicherte Prozedur verwenden, um die Attribute von Aufträgen zu bearbeiten, die anderen Benutzern gehören.

Warning

SQL Server-Agent führt Transact-SQL Arbeitsschritte im Sicherheitskontext des Jobinhabers durch. Wenn du @owner_login_name änderst, laufen diese Schritte unter den Erlaubnissen des neuen Besitzers.

Beispiele

Im folgenden Beispiel werden der Name, die Beschreibung und der aktivierte Status des Auftrags NightlyBackups geändert.

USE msdb;
GO

EXECUTE dbo.sp_update_job
    @job_name = N'NightlyBackups',
    @new_name = N'NightlyBackups -- Disabled',
    @description = N'Nightly backups disabled during server migration.',
    @enabled = 0;
GO