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
.
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, aus dem der Zeitplan entfernt werden soll. @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.
[ @schedule_id = ] schedule_id
Die ID des Zeitplans, der aus dem Auftrag entfernt werden soll. @schedule_id ist int mit einem Standardwert von NULL
.
Entweder @schedule_id oder @schedule_name müssen angegeben werden, beide können jedoch nicht angegeben werden.
[ @schedule_name = ] N'schedule_name'
Der Name des Zeitplans, der aus dem Auftrag entfernt werden soll. @schedule_name ist "sysname" mit der Standardeinstellung "NULL
.
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
, was bedeutet, dass alle Zeitpläne beibehalten werden, 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
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.
Weitere Informationen zu den Berechtigungen dieser Rollen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.
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