jobs.sp_add_target_group_member (trabajos elásticos de Azure) (Transact-SQL)

Se aplica a:Azure SQL Database

Agrega una base de datos o un grupo de bases de datos a un grupo de destino en el servicio Trabajos elásticos de Azure para Azure SQL Database.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

@target_group_name

Nombre del grupo de destino al que se agregará el miembro. target_group_name es nvarchar(128), sin ningún valor predeterminado.

@membership_type

Especifica si se incluirá o excluirá el miembro del grupo de destino. membership_type es nvarchar(128), con el valor predeterminado de "Include". Los valores válidos para membership_type son "Include" o "Exclude".

@target_type

Tipo de base de datos de destino o colección de bases de datos, incluidas todas las bases de datos de un servidor lógico de Azure SQL Database, todas las bases de datos de un grupo elástico o una base de datos individual. target_type es nvarchar(128), sin ningún valor predeterminado.

Los valores válidos para target_type son SqlServer, SqlElasticPool, SqlDatabase.

@refresh_credential_name

Nombre de la credencial con ámbito de base de datos. refresh_credential_name es nvarchar(128), sin ningún valor predeterminado.

Al usar la autenticación de Microsoft Entra (anteriormente Azure Active Directory), omita el parámetro @refresh_credential_name . Solo para su uso con autenticación basada en credenciales.

@server_name

Nombre del servidor lógico de Azure SQL Database que se debe agregar al grupo de destino especificado. server_name debe especificarse cuando target_type sea SqlServer. server_name es nvarchar(128), sin ningún valor predeterminado.

.database.windows.net Incluya como parte de @server_name.

@database_name

Nombre de la base de datos que debe agregarse al grupo de destino especificado. database_name debe especificarse cuando target_type es SqlDatabase. database_name es nvarchar(128), sin ningún valor predeterminado.

@elastic_pool_name

Nombre del grupo elástico de Azure SQL Database que se debe agregar al grupo de destino especificado. elastic_pool_name debe especificarse cuando target_type sea SqlElasticPool. elastic_pool_name es nvarchar(128), sin ningún valor predeterminado.

@target_id SALIDA

Número de identificación de destino asignado al miembro del grupo de destino si se agregó al grupo de destino. target_id es una variable de salida de tipo uniqueidentifier, con un valor predeterminado de NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

Un trabajo se ejecuta en todas las bases de datos únicas de un servidor o grupo elástico en tiempo de ejecución, cuando un servidor o un grupo elástico está incluido en el grupo de destino.

Elija un método para todos los destinos de un trabajo elástico. Por ejemplo, para un único trabajo elástico, no puede configurar un servidor de destino para usar credenciales con ámbito de base de datos y otra para usar la autenticación de Id. de Microsoft Entra. Para más información, consulte Autenticación.

Permisos

De forma predeterminada, los miembros del rol fijo de servidor sysadmin pueden ejecutar este procedimiento almacenado. Solo los miembros de sysadmin pueden usar este procedimiento almacenado para editar los atributos de los trabajos que pertenecen a otros usuarios.

Ejemplos

Agregar una base de datos al grupo de destino

En el ejemplo siguiente se muestra cómo agregar una base de datos en un servidor a un grupo de destino denominado ElasticJobGroup, mediante la autenticación de Microsoft Entra (anteriormente Azure Active Directory).

Conectar a job_database y ejecute el siguiente comando para agregar la master base de datos al grupo de destino denominado 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

Agregar varias bases de datos a un grupo de destino

En el ejemplo siguiente se agregan todas las bases de datos de los London servidores y NewYork al grupo Servers Maintaining Customer Information. Debe conectarse a la base de datos de trabajos especificada al crear el agente de trabajos, en este caso ElasticJobs.

Al usar la autenticación de Microsoft Entra (anteriormente Azure Active Directory), omita el parámetro @refresh_credential_name , que solo se debe proporcionar al usar credenciales con ámbito de base de datos. En los ejemplos siguientes, se comenta el parámetro @refresh_credential_name.

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

Exclusión de bases de datos en un servidor lógico

En el ejemplo siguiente se muestra cómo ejecutar un trabajo en todas las bases de datos de un servidor server1.database.windows.netlógico, excepto para la base de datos denominada MappingDB o la base de datos denominada MappingDB2.

Conéctese a la job_database y ejecute el siguiente comando:

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

Creación de un grupo de destino (grupos)

En el ejemplo siguiente se muestra cómo establecer como destino todas las bases de datos de uno o varios grupos elásticos.

Conéctese a la job_database y ejecute el siguiente comando:

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