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“ (fehlerhaft)

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. Für einen einzelnen elastischen Auftrag können Sie beispielsweise 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 ElasticJobGroupMicrosoft Entra (früher Azure Active Directory) eine Datenbank in einem Server hinzufügen.

Verbinden zum job_database folgenden Befehl aus, um die master Datenbank der Zielgruppe mit dem Namen ElasticJobGrouphinzuzufü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 Informationund NewYork den London Servern hinzugefügt. In diesem Fall ElasticJobsmü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
USE ElasticJobs;
GO

-- 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.netausfü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