jobs.sp_add_target_group_member (Azure エラスティック ジョブ) (Transact-SQL)
適用対象: Azure SQL Database
Azure SQL Database の Azure Elastic Jobs サービスのターゲット グループにデータベースまたはデータベースのグループを追加します。
構文
[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 Database 論理サーバー内のすべてのデータベース、エラスティック プール内のすべてのデータベース、または個々のデータベースを含む、ターゲット データベースまたはデータベースのコレクションの種類。 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
指定したターゲット グループに追加する必要がある Azure SQL Database 論理サーバーの名前。 server_name は、target_typeが SqlServer
されるときに指定する必要があります。 server_name は nvarchar(128) で、既定値はありません。
@server_nameの一部として.database.windows.net
を含めます。
@database_name
指定したターゲット グループに追加する必要があるデータベースの名前。 database_name は、target_typeが SqlDatabase
されるときに指定する必要があります。 database_name は nvarchar(128) で、既定値はありません。
@elastic_pool_name
指定したターゲット グループに追加する必要がある Azure SQL Database エラスティック プールの名前。 elastic_pool_name は、target_typeが SqlElasticPool
されるときに指定する必要があります。 elastic_pool_name は nvarchar(128) で、既定値はありません。
@target_id アウトプット
ターゲット グループに追加された場合にターゲット グループ メンバーに割り当てられるターゲット ID 番号。 target_id は uniqueidentifier 型の出力変数で、既定値は NULL
です。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
サーバーまたはエラスティック プールがターゲット グループに含まれている場合、実行時にはサーバーまたはエラスティック プール内のすべての単一データベースでジョブが実行されます。
エラスティック ジョブのすべてのターゲットに対して 1 つの方法を選択します。 たとえば、1 つのエラスティック ジョブの場合、データベース スコープの資格情報を使用するように 1 つのターゲット サーバーを構成し、もう 1 つを Microsoft Entra ID 認証を使用するように構成することはできません。 詳細については、認証に関するページをご覧ください。
アクセス許可
既定では、このストアド プロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーです。 このストアド プロシージャを使って、他のユーザーが所有するジョブの属性を編集できるのは、sysadmin のメンバーだけです。
例
ターゲット グループに 1 つのデータベースを追加する
次の例は、Microsoft Entra (旧称 Azure Active Directory) 認証を使用して、 ElasticJobGroup
という名前のターゲット グループにサーバー内の 1 つのデータベースを追加する方法を示しています。
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
および NewYork
サーバー内のすべてのデータベースをグループ Servers Maintaining Customer Information
に追加します。 ジョブ エージェントの作成時に指定したジョブ データベースに接続する必要があります (この場合は 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
ターゲット グループ (プール) を作成する
次の例では、1 つまたは複数のエラスティック プール内のすべてのデータベースをターゲットにする方法を示します。
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