Поделиться через


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 (сбой).

Замечания

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

Выберите один метод для всех целевых объектов для эластичного задания. Например, для одного эластичного задания нельзя настроить один целевой сервер для использования учетных данных с областью базы данных и другого для использования проверки подлинности идентификатора 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