jobs.sp_add_target_group_member (Azure Elastic Jobs) (Transact-SQL)

Aplica-se a:Banco de Dados SQL do Azure

Adiciona um banco de dados ou grupo de bancos de dados a um grupo de destino no serviço Azure Elastic Jobs para Banco de Dados SQL do Azure.

Convenções de sintaxe de Transact-SQL

Sintaxe

[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

O nome do grupo de destino ao qual o membro será adicionado. target_group_name é nvarchar(128), sem padrão.

@membership_type

Especifica se o membro do grupo de destino será incluído ou excluído. membership_type é nvarchar(128), com padrão de 'Include'. Os valores válidos para membership_type são 'Incluir' ou 'Excluir'.

@target_type

O tipo de banco de dados de destino ou coleção de bancos de dados, incluindo todos os bancos de dados em um servidor lógico do Banco de Dados SQL do Azure, todos os bancos de dados em um pool elástico ou um banco de dados individual. target_type é nvarchar(128), sem padrão.

Os valores válidos para target_type são SqlServer, SqlElasticPool, SqlDatabase.

@refresh_credential_name

O nome da credencial com escopo de banco de dados. refresh_credential_name é nvarchar(128), sem padrão.

Ao usar a autenticação do Microsoft Entra (antigo Azure Active Directory), omita o parâmetro @refresh_credential_name . Somente para uso com autenticação baseada em credenciais.

@server_name

O nome do servidor lógico do Banco de Dados SQL do Azure que deve ser adicionado ao grupo de destino especificado. server_name deve ser especificado quando target_type é SqlServer. server_name é nvarchar(128), sem padrão.

Inclua o .database.windows.net como parte do @server_name.

@database_name

O nome do banco de dados que deve ser adicionado ao grupo de destino especificado. database_name deve ser especificado quando target_type é SqlDatabase. database_name é nvarchar(128), sem padrão.

@elastic_pool_name

O nome do pool elástico do Banco de Dados SQL do Azure que deve ser adicionado ao grupo de destino especificado. elastic_pool_name deve ser especificado quando target_type é SqlElasticPool. elastic_pool_name é nvarchar(128), sem padrão.

@target_id SAÍDA

O número de identificação de destino atribuído ao membro do grupo de destino, se tiver sido criado, adicionado ao grupo de destino. target_id é uma variável de saída do tipo uniqueidentifier, com um padrão de NULL.

Valores do código de retorno

0 (êxito) ou 1 (falha)

Comentários

Um trabalho é executado em todos os bancos de dados individuais em um servidor ou em um pool elástico no momento da execução, quando um servidor ou um pool elástico é incluído no grupo de destino.

Escolha um método para todos os destinos de um trabalho elástico. Por exemplo, para um único trabalho elástico, você não pode configurar um servidor de destino para usar credenciais com escopo de banco de dados e outro para usar a autenticação de ID do Microsoft Entra. Para obter mais informações, confira Autenticação.

Permissões

Por padrão, os membros da função de servidor fixa sysadmin podem executar este procedimento armazenado. Somente os membros da função sysadmin podem usar esse procedimento armazenado para editar os atributos dos trabalhos pertencentes a outros usuários.

Exemplos

Adicionar um banco de dados ao grupo de destino

O exemplo a seguir mostra como adicionar um banco de dados em um servidor a um grupo de destino chamado ElasticJobGroup, usando a autenticação do Microsoft Entra (anteriormente Azure Active Directory).

Conecte-se ao job_database e execute o seguinte comando para adicionar o master banco de dados ao grupo de destino chamado 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

Adicionar vários bancos de dados a um grupo de destino

O exemplo a seguir adiciona todos os bancos de dados no London e NewYork servidores ao grupo Servers Maintaining Customer Information. Você deve se conectar ao banco de dados de trabalhos especificado ao criar o agente de trabalho, neste caso ElasticJobs.

Ao usar a autenticação do Microsoft Entra (anteriormente Azure Active Directory), omita o parâmetro @refresh_credential_name , que só deve ser fornecido ao usar credenciais com escopo de banco de dados. Nos exemplos a seguir, o parâmetro @refresh_credential_name tem as barras de comentário removidas.

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

Excluir bancos de dados em um servidor lógico

O exemplo a seguir mostra como executar um trabalho em todos os bancos de dados em um servidor server1.database.windows.netlógico, exceto para o banco de dados nomeado MappingDB ou o banco de dados chamado MappingDB2.

Conecte-se ao job_database e execute o seguinte 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

Criar um grupo de destino (pools)

O exemplo a seguir mostra como direcionar a todos os bancos de dados em um ou mais pools elásticos.

Conecte-se ao job_database e execute o seguinte 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