jobs.sp_add_target_group_member (Azure Elastic Jobs) (Transact-SQL)
Gilt für: Azure SQL-Datenbank
Fügt eine Datenbank oder Eine Gruppe von Datenbanken zu einer Zielgruppe im Azure Elastic Jobs-Dienst für Azure SQL-Datenbank hinzu.
Transact-SQL-Syntaxkonventionen
Syntax
[jobs].sp_add_target_group_member [ @target_group_name = ] 'target_group_name'
[ @membership_type = ] 'membership_type' ]
[ , [ @target_type = ] 'target_type' ]
[ , [ @refresh_credential_name = ] 'refresh_credential_name' ]
[ , [ @server_name = ] 'server_name' ]
[ , [ @database_name = ] 'database_name' ]
[ , [ @elastic_pool_name = ] 'elastic_pool_name' ]
[ , [ @target_id = ] 'target_id' OUTPUT ]
Argumente
@target_group_name
Der Name der Zielgruppe, der das Mitglied hinzugefügt wird. target_group_name ist nvarchar(128), ohne Standard.
@membership_type
Gibt an, ob das Zielgruppenmitglied ein- bzw. ausgeschlossen wird. membership_type ist nvarchar(128), mit der Standardeinstellung "Include". Gültige Werte für membership_type sind "Include" oder "Exclude".
@target_type
Der Typ der Zieldatenbank oder Sammlung von Datenbanken, einschließlich aller Datenbanken in einem Azure SQL-Datenbank logischen Server, alle Datenbanken in einem elastischen Pool oder eine einzelne Datenbank. target_type ist nvarchar(128), ohne Standard.
Gültige Werte für target_type sind SqlServer
, SqlElasticPool
. SqlDatabase
@refresh_credential_name
Der Name der Anmeldeinformationen mit Datenbankbereich. refresh_credential_name ist nvarchar(128), ohne Standard.
Wenn Sie die Microsoft Entra-Authentifizierung (früher Azure Active Directory) verwenden, lassen Sie den parameter @refresh_credential_name aus. Nur für die Verwendung mit anmeldeinformationenbasierter Authentifizierung.
@server_name
Der Name des Azure SQL-Datenbank logischen Servers, der der angegebenen Zielgruppe hinzugefügt werden soll. server_name sollte angegeben werden, wenn target_type istSqlServer
. server_name ist nvarchar(128), ohne Standard.
Schließen Sie den .database.windows.net
Teil von @server_name ein.
@database_name
Der Name der Datenbank, die der angegebenen Zielgruppe hinzugefügt werden soll. database_name sollte angegeben werden, wenn target_type istSqlDatabase
. database_name ist nvarchar(128), ohne Standard.
@elastic_pool_name
Der Name des Azure SQL-Datenbank elastischen Pools, der der angegebenen Zielgruppe hinzugefügt werden soll. elastic_pool_name sollte angegeben werden, wenn target_type istSqlElasticPool
. elastic_pool_name ist nvarchar(128), ohne Standard.
@target_id AUSGABE
Die Ziel-ID, die dem zu entfernenden Zielgruppenmitglied zugewiesen ist, wenn dieses erstellt und der Zielgruppe hinzugefügt wurde. target_id ist eine Ausgabevariable vom Typ uniqueidentifier, mit einem Standardwert von NULL
.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
Ein Auftrag wird zum Zeitpunkt der Ausführung in allen Einzeldatenbanken auf einem Server oder in einem Pool für elastische Datenbanken ausgeführt, wenn ein Server oder Pool für elastische Datenbanken in der Zielgruppe enthalten ist.
Wählen Sie eine Methode für alle Ziele für einen elastischen Auftrag aus. Beispielsweise können Sie für einen einzelnen elastischen Auftrag keinen Zielserver für die Verwendung von Anmeldeinformationen mit Datenbankbereich und eine andere für die Verwendung der Microsoft Entra ID-Authentifizierung konfigurieren. Weitere Informationen finden Sie unter Authentifizierung.
Berechtigungen
Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin diese gespeicherte Prozedur ausführen. Nur Mitglieder der Rolle „sysadmin“ können mithilfe dieser gespeicherten Prozedur Attribute von Aufträgen bearbeiten, die anderen Benutzern gehören.
Beispiele
Hinzufügen einer Datenbank zur Zielgruppe
Das folgende Beispiel zeigt, wie Sie einer Zielgruppe mit dem Namen ElasticJobGroup
Microsoft Entra (früher Azure Active Directory) eine Datenbank in einem Server hinzufügen.
Stellen Sie eine Verbindung mit dem job_database
folgenden Befehl her, und führen Sie den folgenden Befehl aus, um die master
Datenbank zur Zielgruppe mit dem Namen ElasticJobGroup
hinzuzufügen:
-- Connect to the job database specified when creating the job agent
-- Create a target group containing elastic job database
EXEC jobs.sp_add_target_group 'ElasticJobGroup';
-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = 'ElasticJobGroup',
@target_type = 'SqlDatabase',
@server_name = 'server1.database.windows.net',
@database_name = 'master';
--View the recently created target group and target group members
SELECT * FROM jobs.target_groups
WHERE target_group_name='ServerGroup1';
GO
SELECT * FROM jobs.target_group_members
WHERE target_group_name='ServerGroup1';
GO
Hinzufügen mehrerer Datenbanken zu einer Zielgruppe
Im folgenden Beispiel werden alle Datenbanken in der Gruppe Servers Maintaining Customer Information
und NewYork
den London
Servern hinzugefügt. In diesem Fall ElasticJobs
müssen Sie eine Verbindung mit der Auftragsdatenbank herstellen, die beim Erstellen des Auftrags-Agents angegeben ist.
Wenn Sie die Microsoft Entra-Authentifizierung (vormals Azure Active Directory) verwenden, lassen Sie den parameter @refresh_credential_name aus, der nur bei Verwendung von Anmeldeinformationen mit Datenbankbereich bereitgestellt werden sollte. In den folgenden Beispielen ist der @refresh_credential_name
-Parameter auskommentiert.
--Connect to the jobs database specified when creating the job agent.
-- Create a target group containing server(s)
EXEC jobs.sp_add_target_group @target_group_name = N'Servers Maintaining Customer Information';
GO
-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = N'Servers Maintaining Customer Information',
@target_type = N'SqlServer',
--@refresh_credential_name=N'refresh_credential', --database-scoped credential
@server_name=N'London.database.windows.net';
GO
-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = N'Servers Maintaining Customer Information',
@target_type = N'SqlServer',
--@refresh_credential_name=N'refresh_credential', --database-scoped credential
@server_name=N'NewYork.database.windows.net';
GO
--View the recently added members to the target group
SELECT * FROM [jobs].target_group_members
WHERE target_group_name= N'Servers Maintaining Customer Information';
GO
Ausschließen von Datenbanken auf einem logischen Server
Das folgende Beispiel zeigt, wie Sie einen Auftrag für alle Datenbanken in einem logischen Server server1.database.windows.net
ausführen, mit Ausnahme der Datenbank mit dem Namen MappingDB
oder der Datenbank mit dem Namen MappingDB2
.
Stellen Sie eine Verbindung mit der job_database
her, und führen Sie den folgenden Befehl aus:
--Connect to the job database specified when creating the job agent
-- Create a target group containing server(s)
EXEC [jobs].sp_add_target_group N'ServerGroup';
GO
-- Add a server target member
EXEC jobs.sp_add_target_group_member
@target_group_name = N'ServerGroup',
@target_type = N'SqlServer',
@server_name=N'server1.database.windows.net';
GO
--Exclude one database from a server target group
EXEC [jobs].sp_add_target_group_member
@target_group_name = N'ServerGroup',
@membership_type = N'Exclude',
@target_type = N'SqlDatabase',
@server_name = N'server1.database.windows.net',
@database_name = N'MappingDB';
GO
--Exclude another database from a server target group
EXEC [jobs].sp_add_target_group_member
@target_group_name = N'ServerGroup',
@membership_type = N'Exclude',
@target_type = N'SqlDatabase',
@server_name = N'server1.database.windows.net',
@database_name = N'MappingDB2';
GO
--View the recently created target group and target group members
SELECT * FROM [jobs].target_groups
WHERE target_group_name = N'ServerGroup';
GO
SELECT * FROM [jobs].target_group_members
WHERE target_group_name = N'ServerGroup';
GO
Erstellen einer Zielgruppe (Pools)
Das folgende Beispiel zeigt, wie Zielgruppen für alle Datenbanken in einem oder in mehreren Pools für elastische Datenbanken erstellt werden.
Stellen Sie eine Verbindung mit der job_database
her, und führen Sie den folgenden Befehl aus:
--Connect to the job database specified when creating the job agent
-- Create a target group containing pool(s)
EXEC jobs.sp_add_target_group 'PoolGroup';
-- Add an elastic pool(s) target member
EXEC jobs.sp_add_target_group_member
@target_group_name = 'PoolGroup',
@target_type = 'SqlElasticPool',
@server_name = 'server1.database.windows.net',
@elastic_pool_name = 'ElasticPool1';
-- View the recently created target group and target group members
SELECT * FROM jobs.target_groups
WHERE target_group_name = N'PoolGroup';
GO
SELECT * FROM jobs.target_group_members
WHERE target_group_name = N'PoolGroup';
GO