jobs.sp_add_target_group_member (processi elastici di Azure) (Transact-SQL)

Si applica a:database SQL di Azure

Aggiunge un database o un gruppo di database a un gruppo di destinazione nel servizio Processi elastici di Azure per database SQL di Azure.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

@target_group_name

Nome del gruppo di destinazione a cui verrà aggiunto il membro. target_group_name è nvarchar(128), senza impostazione predefinita.

@membership_type

Specifica se il membro del gruppo di destinazione deve essere incluso o escluso. membership_type è nvarchar(128), con il valore predefinito "Include". I valori validi per membership_type sono 'Include' o 'Exclude'.

@target_type

Tipo di database di destinazione o raccolta di database, inclusi tutti i database in un server logico database SQL di Azure, tutti i database in un pool elastico o un singolo database. target_type è nvarchar(128), senza impostazione predefinita.

I valori validi per target_type sono , , SqlDatabaseSqlElasticPool.SqlServer

@refresh_credential_name

Nome della credenziale con ambito database. refresh_credential_name è nvarchar(128), senza impostazione predefinita.

Quando si usa l'autenticazione di Microsoft Entra (in precedenza Azure Active Directory), omettere il parametro @refresh_credential_name . Solo per l'uso con l'autenticazione basata su credenziali.

@server_name

Nome del server logico database SQL di Azure che deve essere aggiunto al gruppo di destinazione specificato. server_name deve essere specificato quando target_type è SqlServer. server_name è nvarchar(128), senza impostazione predefinita.

Includere come .database.windows.net parte di @server_name.

@database_name

Nome del database da aggiungere al gruppo di destinazione specificato. database_name deve essere specificato quando target_type è SqlDatabase. database_name è nvarchar(128), senza impostazione predefinita.

@elastic_pool_name

Nome del pool elastico database SQL di Azure che deve essere aggiunto al gruppo di destinazione specificato. elastic_pool_name deve essere specificato quando target_type è SqlElasticPool. elastic_pool_name è nvarchar(128), senza impostazione predefinita.

@target_id OUTPUT

Numero di identificazione della destinazione assegnato al membro del gruppo di destinazione se viene creato e aggiunto correttamente al gruppo di destinazione. target_id è una variabile di output di tipo uniqueidentifier, con un valore predefinito .NULL

Valori del codice restituito

0 (operazione completata) o 1 (operazione non riuscita)

Osservazioni:

Un processo viene eseguito in tutti i singoli database all'interno di un server o in un pool elastico al momento dell'esecuzione, quando un server o un pool elastico è incluso nel gruppo di destinazione.

Scegliere un metodo per tutte le destinazioni per un processo elastico. Ad esempio, per un singolo processo elastico, non è possibile configurare un server di destinazione per l'uso delle credenziali con ambito database e un altro per l'uso dell'autenticazione MICROSOFT Entra ID. Per altre informazioni, vedere Autenticazione.

Autorizzazioni

Per impostazione predefinita, i membri del ruolo predefinito del server sysadmin possono eseguire questa stored procedure. Solo i membri del ruolo sysadmin possono usare questa stored procedure per modificare gli attributi dei processi di proprietà di altri utenti.

Esempi

Aggiungere un database al gruppo di destinazione

L'esempio seguente illustra come aggiungere un database in un server a un gruppo di destinazione denominato ElasticJobGroup, usando l'autenticazione di Microsoft Entra (in precedenza Azure Active Directory).

Connessione a job_database ed eseguire il comando seguente per aggiungere il master database al gruppo di destinazione denominato 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

Aggiungere più database a un gruppo di destinazione

Nell'esempio seguente vengono aggiunti tutti i database nei London server e NewYork al gruppo Servers Maintaining Customer Information. È necessario connettersi al database dei processi specificato durante la creazione dell'agente processo, in questo caso ElasticJobs.

Quando si usa l'autenticazione di Microsoft Entra (in precedenza Azure Active Directory), omettere il parametro @refresh_credential_name , che deve essere fornito solo quando si usano credenziali con ambito database. Negli esempi seguenti il @refresh_credential_name parametro è impostato come commento.

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

Escludere database in un server logico

Nell'esempio seguente viene illustrato come eseguire un processo su tutti i database in un server server1.database.windows.netlogico, ad eccezione del database denominato MappingDB o del database denominato MappingDB2.

Connettersi al job_database database ed eseguire il comando seguente:

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

Creare un gruppo di destinazione (pool)

L'esempio seguente mostra come specificare come destinazione tutti i database in uno o più pool elastici.

Connettersi al database job_database ed eseguire il comando seguente:

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