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
, SqlElasticPool
SqlDatabase
.
@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
(сбой).
Замечания
Если сервер или эластичный пул добавлен в целевую группу, то задание выполняется для всех отдельных баз данных на этом сервере или в этом эластичном пуле.
Выберите один метод для всех целевых объектов для эластичного задания. Например, для одного эластичного задания нельзя настроить один целевой сервер для использования учетных данных с областью базы данных и другого для использования проверки подлинности идентификатора 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
добавляются все базы данных и London
NewYork
серверы. В этом случае ElasticJobs
необходимо подключиться к базе данных заданий, указанной при создании агента задания.
При использовании проверки подлинности Microsoft Entra (ранее Azure Active Directory) опустите параметр @refresh_credential_name , который следует указать только при использовании учетных данных с областью базы данных. В следующих примерах @refresh_credential_name
параметр закомментирован.
--Connect to the jobs database specified when creating the job agent.
-- 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