jobs.sp_add_target_group_member (Azure 彈性作業) (Transact-SQL)

適用於:Azure SQL 資料庫

將資料庫或資料庫群組新增至適用於 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),預設值為 'Include'。 membership_type的有效值為 『Include』 或 'Exclude'。

@target_type

目標資料庫或資料庫集合的類型,包括 Azure SQL 資料庫 邏輯伺服器中的所有資料庫、彈性集區中的所有資料庫或個別資料庫。 target_type為 nvarchar(128),沒有預設值。

SqlServertarget_type的有效值為、、 SqlElasticPoolSqlDatabase

@refresh_credential_name

資料庫範圍認證的名稱。 refresh_credential_name為 nvarchar(128),沒有預設值。

使用 Microsoft Entra 驗證時(先前稱為 Azure Active Directory),請省略 @refresh_credential_name 參數。 僅適用於認證型驗證。

@server_name

應新增至指定目標組的 Azure SQL 資料庫 邏輯伺服器名稱。 當 target_type 為 SqlServer時,應該指定server_name。 server_name為 nvarchar(128),沒有預設值。

.database.windows.net包含 作為@server_name的一部分。

@database_name

應新增至指定目標群組的資料庫名稱。 當 target_type 為 SqlDatabase時,應該指定database_name。 database_name為 nvarchar(128),沒有預設值。

@elastic_pool_name

應新增至指定目標群組的 Azure SQL 資料庫 彈性集區名稱。 當 target_type 為 SqlElasticPool時,應該指定elastic_pool_name。 elastic_pool_name為 nvarchar(128),沒有預設值。

@target_id 輸出

在目標群組成員新增至目標群組時指派給該成員的目標識別碼。 target_id是 uniqueidentifier 類型的輸出變數,預設值為 NULL

傳回碼值

0 (成功) 或 1 (失敗)

備註

當目標群組中包含伺服器或彈性集區時,在執行期間會對伺服器或彈性集區內的所有單一資料庫執行作業。

為彈性作業的所有目標選擇一個方法。 例如,對於單一彈性作業,您無法將一部目標伺服器設定為使用資料庫範圍認證,另一部則使用 Microsoft Entra ID 驗證。 如需詳細資訊,請參閱 驗證

權限

依預設,只有 系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。 只有系統管理員的成員可以使用此預存程序來編輯其他使用者所擁有的作業屬性。

範例

將一個資料庫新增至目標組

下列範例示範如何使用 Microsoft Entra(先前稱為 Azure Active Directory)驗證,將伺服器中的一個資料庫新增至名為 ElasticJobGroup的目標群組。

連線 至 ,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

將多個資料庫新增至目標組

下列範例會將 和 伺服器中的所有London資料庫新增至 群組 Servers Maintaining Customer InformationNewYork 在此情況下 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