sp_add_jobserver (Transact-SQL)
Gilt für: SQL Server
Weist einem Auftrag einen bestimmten Zielserver zu.
Transact-SQL-Syntaxkonventionen
Syntax
sp_add_jobserver
[ @job_id = ] job_id
| [ @job_name = ] 'job_name'
[ , [ @server_name = ] 'server' ]
[ ; ]
Argumente
[ @job_id = ] job_id
Die ID des Auftrags. 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 = ] '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.
[ @server_name = ] N'server'
Der Name des Servers für das Ziel des Auftrags. @server_name ist nvarchar(30), mit einem Standardwert von (LOCAL)
. @server_name kann entweder (LOCAL)
für einen lokalen Server oder den Namen eines vorhandenen Zielservers verwendet werden.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Resultset
Keine.
Hinweise
@automatic_post ist in sp_add_jobserver
vorhanden, wird jedoch nicht unter "Argumente" aufgeführt. @automatic_post ist für die interne Verwendung reserviert.
SQL Server Management Studio bietet eine einfache grafische Möglichkeit zum Verwalten von Aufträgen. Es handelt sich hierbei um die empfohlene Art und Weise zum Erstellen und Verwalten der Auftragsinfrastruktur.
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.
Nur Mitglieder der festen Serverrolle "sysadmin " können für Aufträge ausgeführt werden sp_add_jobserver
, die mehrere Server umfassen.
Beispiele
A. Zuweisen eines Auftrags zum lokalen Server
Im folgenden Beispiel wird die Ausführung des Auftrags NightlyBackups
dem lokalen Server zugewiesen.
Hinweis
In diesem Beispiel wird davon ausgegangen, dass der NightlyBackups
Auftrag bereits vorhanden ist.
USE msdb;
GO
EXEC dbo.sp_add_jobserver @job_name = N'NightlyBackups';
GO
B. Zuweisen eines Auftrags zur Ausführung auf einem anderen Server
Im folgenden Beispiel wird der Multiserverauftrag Weekly Sales Backups
dem Server SEATTLE2
zugewiesen.
Hinweis
Bei diesem Beispiel wird vorausgesetzt, dass der Auftrag Weekly Sales Backups
bereits vorhanden ist und dass der Server SEATTLE2
als Zielserver für die aktuelle Instanz registriert ist.
USE msdb;
GO
EXEC dbo.sp_add_jobserver @job_name = N'Weekly Sales Backups',
@server_name = N'SEATTLE2';
GO