Partager via


jobs.sp_add_target_group_member (travaux élastiques Azure) (Transact-SQL)

S’applique à : Azure SQL Database

Ajoute une base de données ou un groupe de bases de données à un groupe cible dans le service Travaux élastiques Azure pour Azure SQL Database.

Conventions de la syntaxe Transact-SQL

Syntaxe

[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 ]

Arguments

@target_group_name

Nom du groupe cible auquel le membre sera ajouté. target_group_name est nvarchar(128), sans valeur par défaut.

@membership_type

Spécifie si le membre du groupe cible sera inclus ou exclu. membership_type est nvarchar(128), avec la valeur par défaut « Include ». Les valeurs valides pour membership_type sont « Include » ou « Exclude ».

@target_type

Type de base de données cible ou collection de bases de données, y compris toutes les bases de données d’un serveur logique Azure SQL Database, toutes les bases de données d’un pool élastique ou une base de données individuelle. target_type est nvarchar(128), sans valeur par défaut.

Les valeurs valides pour target_type sont SqlServer, SqlElasticPool, SqlDatabase.

@refresh_credential_name

Nom des informations d’identification délimitées à la base de données. refresh_credential_name est nvarchar(128), sans valeur par défaut.

Lorsque vous utilisez l’authentification Microsoft Entra (anciennement Azure Active Directory), omettez le paramètre @refresh_credential_name . Uniquement pour une utilisation avec l’authentification basée sur les informations d’identification.

@server_name

Nom du serveur logique Azure SQL Database qui doit être ajouté au groupe cible spécifié. server_name doit être spécifié lorsque target_type est SqlServer. server_name est nvarchar(128), sans valeur par défaut.

Incluez-le .database.windows.net dans le cadre de @server_name.

@database_name

Nom de la base de données qui doit être ajoutée au groupe cible spécifié. database_name doit être spécifié lorsque target_type est SqlDatabase. database_name est nvarchar(128), sans valeur par défaut.

@elastic_pool_name

Nom du pool élastique Azure SQL Database à ajouter au groupe cible spécifié. elastic_pool_name doit être spécifié lorsque target_type est SqlElasticPool. elastic_pool_name est nvarchar(128), sans valeur par défaut.

@target_id SORTIE

Numéro d’identification cible affecté au membre du groupe cible s’il a été créé et ajouté au groupe cible. target_id est une variable de sortie de type uniqueidentifier, avec une valeur par défaut NULL.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

Un travail s’exécute sur toutes les bases de données uniques au sein d’un serveur ou dans un pool élastique au moment de l’exécution, lorsqu’un serveur ou un pool élastique est inclus dans le groupe cible.

Choisissez une méthode pour toutes les cibles d’un travail élastique. Par exemple, pour un travail élastique unique, vous ne pouvez pas configurer un serveur cible pour utiliser des informations d’identification délimitées à la base de données et une autre pour utiliser l’authentification d’ID Microsoft Entra. Pour en savoir plus, consultez Authentification.

autorisations

Par défaut, les membres du rôle serveur fixe sysadmin peuvent exécuter cette procédure stockée. Seuls des membres de sysadmin peuvent utiliser cette procédure stockée pour modifier les attributs des travaux qui appartiennent à d’autres utilisateurs.

Exemples

Ajouter une base de données au groupe cible

L’exemple suivant montre comment ajouter une base de données dans un serveur à un groupe cible nommé ElasticJobGroup, à l’aide de l’authentification Microsoft Entra (anciennement Azure Active Directory).

Connectez-vous à la job_database commande suivante et exécutez la commande suivante pour ajouter la master base de données au groupe cible nommé ElasticJobGroup:

-- 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

Ajouter plusieurs bases de données à un groupe cible

L’exemple suivant ajoute toutes les bases de données dans les serveurs et NewYork les London serveurs au groupeServers Maintaining Customer Information. Vous devez vous connecter à la base de données de travaux spécifiée lors de la création de l’agent de travail, dans ce cas ElasticJobs.

Lorsque vous utilisez l’authentification Microsoft Entra (anciennement Azure Active Directory), omettez le paramètre @refresh_credential_name , qui ne doit être fourni que lors de l’utilisation d’informations d’identification délimitées à la base de données. Dans les exemples suivants, le paramètre @refresh_credential_name est commenté.

--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

Exclure des bases de données sur un serveur logique

L’exemple suivant montre comment exécuter un travail sur toutes les bases de données d’un serveur server1.database.windows.netlogique, à l’exception de la base de données nommée MappingDB ou de la base de données nommée MappingDB2.

Connectez-vous au job_database et exécutez la commande suivante :

--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

Créer un groupe cible (pools)

L’exemple suivant montre comment cibler toutes les bases de données dans un ou plusieurs pools élastiques.

Connectez-vous au job_database et exécutez la commande suivante :

--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