Freigeben über


sp_update_job (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

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

Transact-SQL-Syntaxkonventionen

Syntax

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. @category_name ist "sysname" mit der Standardeinstellung "NULL.

[ @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.

[ @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. @notify_page_operator_name ist "sysname" mit der Standardeinstellung "NULL.

[ @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.

Beispiele

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

USE msdb;
GO

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