jobs.sp_add_target_group_member (задания эластичных баз данных Azure) (Transact-SQL)

Применимо к:База данных SQL Azure

Добавляет базу данных или группу баз данных в целевую группу в службе заданий Эластичных баз данных Azure для База данных SQL Azure.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

@target_group_name

Имя целевой группы для добавления элемента. target_group_name — nvarchar(128), без значения по умолчанию.

@membership_type

Указывает, добавляется или исключается ли элемент целевой группы. membership_type — nvarchar(128) с значением по умолчанию "Включить". Допустимые значения для membership_type : "Включить" или "Исключить".

@target_type

Тип целевой базы данных или коллекции баз данных, включая все базы данных в База данных SQL Azure логический сервер, все базы данных в эластичном пуле или отдельную базу данных. target_type — nvarchar(128), без значения по умолчанию.

Допустимые значения для target_type: SqlServer, SqlElasticPoolSqlDatabase.

@refresh_credential_name

Имя учетных данных, область область базы данных. refresh_credential_name — nvarchar(128), без значения по умолчанию.

При использовании проверки подлинности Microsoft Entra (ранее — Azure Active Directory) опустите параметр @refresh_credential_name . Только для использования с проверкой подлинности на основе учетных данных.

@server_name

Имя логического сервера База данных SQL Azure, который необходимо добавить в указанную целевую группу. server_name следует указывать при target_typeSqlServer. server_name — nvarchar(128), без значения по умолчанию.

Включите в .database.windows.net состав @server_name.

@database_name

Имя базы данных, добавляемой в указанную целевую группу. database_name следует указать при target_typeSqlDatabase. database_name — nvarchar(128), без значения по умолчанию.

@elastic_pool_name

Имя База данных SQL Azure эластичного пула, который следует добавить в указанную целевую группу. elastic_pool_name следует указать при target_typeSqlElasticPool. elastic_pool_name — nvarchar(128), без значения по умолчанию.

@target_id ВЫХОД

Целевой идентификационный номер, который назначается элементу целевой группы при его успешном создании и добавлении в целевую группу. target_id — это выходная переменная типа uniqueidentifier с значением по умолчаниюNULL.

Значения кода возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Если сервер или эластичный пул добавлен в целевую группу, то задание выполняется для всех отдельных баз данных на этом сервере или в этом эластичном пуле.

Выберите один метод для всех целевых объектов для эластичного задания. Например, для одного эластичного задания нельзя настроить один целевой сервер для использования учетных данных, область d базы данных, а другой — для использования проверки подлинности идентификатора Microsoft Entra ID. Дополнительные сведения см. в разделе Authenticate to the Speech API (Аутентификация в API речи).

Разрешения

По умолчанию участники фиксированной роли сервера sysadmin могут выполнять эту хранимую процедуру. Только участники роли sysadmin могут использовать эту хранимую процедуру для редактирования атрибутов заданий, которыми владеют другие пользователи.

Примеры

Добавление одной базы данных в целевую группу

В следующем примере показано, как добавить одну базу данных на сервер в целевую группу с именем ElasticJobGroup, используя проверку подлинности Microsoft Entra (прежнее название — Azure Active Directory).

Подключение в job_database и выполните следующую команду, чтобы добавить master базу данных в целевую группу с именем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

Добавление нескольких баз данных в целевую группу

В следующем примере в группу Servers Maintaining Customer Informationдобавляются все базы данных и LondonNewYork серверы. В этом случае ElasticJobsнеобходимо подключиться к базе данных заданий, указанной при создании агента задания.

При использовании проверки подлинности Microsoft Entra (ранее Azure Active Directory) опустите параметр @refresh_credential_name, который следует предоставить только при использовании учетных данных, область управляемых базой данных. В следующих примерах @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

Исключение баз данных на логическом сервере

В следующем примере показано, как выполнить задание для всех баз данных на логическом сервере server1.database.windows.net, за исключением базы данных с именем MappingDB или именем MappingDB2базы данных.

Подключение в job_database и выполните следующую команду:

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

Создание целевой группы (пулов)

В примере ниже показано, как выбрать в качестве цели все базы данных в одном или нескольких эластичных пулах.

Подключение в job_database и выполните следующую команду:

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