sp_detach_schedule (Transact-SQL)
Gilt für:SQL Server
Entfernt eine Zuordnung zwischen einem Zeitplan und einem Auftrag.
Transact-SQL-Syntaxkonventionen
Syntax
sp_detach_schedule
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @schedule_name = ] N'schedule_name' ]
[ , [ @delete_unused_schedule = ] delete_unused_schedule ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
Argumente
[ @job_id = ] 'job_id'
Die ID des Auftrags, aus dem der Zeitplan entfernt werden soll. @job_id ist eindeutiger Bezeichner mit einem Standardwert von NULL
.
[ @job_name = ] N'job_name'
Der Name des Auftrags, aus dem der Zeitplan entfernt werden soll. @job_name ist "sysname" mit der Standardeinstellung "NULL
.
Hinweis
Entweder @job_id oder @job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.
[ @schedule_id = ] schedule_id
Die ID des Zeitplans, der aus dem Auftrag entfernt werden soll. @schedule_id ist int mit einem Standardwert von NULL
.
[ @schedule_name = ] N'schedule_name'
Der Name des Zeitplans, der aus dem Auftrag entfernt werden soll. @schedule_name ist "sysname" mit der Standardeinstellung "NULL
.
Hinweis
Entweder @schedule_id oder @schedule_name müssen angegeben werden, beide können jedoch nicht angegeben werden.
[ @delete_unused_schedule = ] delete_unused_schedule
Gibt an, ob nicht verwendete Auftragszeitpläne gelöscht werden sollen. @delete_unused_schedule ist bit, mit einem Standardwert von 0
.
- Wenn diese Einstellung festgelegt
0
ist, werden alle Zeitpläne beibehalten, auch wenn keine Aufträge darauf verweisen. - Bei Festlegung auf
1
, werden nicht verwendete Auftragspläne gelöscht, wenn keine Aufträge darauf verweisen.
[ @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.
Resultset
Keine.
Berechtigungen
Diese gespeicherte Prozedur gehört der db_owner Rolle. Sie können berechtigungen für jeden Benutzer erteilen EXECUTE
, diese Berechtigungen können jedoch 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.
Der Auftragsbesitzer kann einen Auftrag an einen Zeitplan anfügen und einen Auftrag von einem Zeitplan trennen, ohne auch der Zeitplanbesitzer zu sein. Ein Zeitplan kann jedoch nicht gelöscht werden, wenn die Trennung sie ohne Aufträge belassen würde, es sei denn, der Anrufer ist der Planbesitzer.
Nur Mitglieder von sysadmin können diese gespeicherte Prozedur verwenden, um die Attribute von Aufträgen zu bearbeiten, die anderen Benutzern gehören.
SQL Server überprüft, ob der Benutzer den Zeitplan besitzt. Nur Mitglieder der festen Serverrolle "sysadmin " können Zeitpläne von Aufträgen trennen, die einem anderen Benutzer gehören.
Beispiele
Im folgenden Beispiel wird eine Zuordnung zwischen einem NightlyJobs
-Zeitplan und einem BackupDatabase
-Auftrag entfernt.
USE msdb;
GO
EXEC dbo.sp_detach_schedule
@job_name = 'BackupDatabase',
@schedule_name = 'NightlyJobs';
GO
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für