sp_marksubscriptionvalidation (Transact-SQL)
適用対象:SQL Server
現在開いているトランザクションを、指定したサブスクライバーのサブスクリプション レベルの検証トランザクションとしてマークします。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。
構文
sp_marksubscriptionvalidation [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @destination_db = ] 'destination_db'
[ , [ @publisher = ] 'publisher' ]
引数
[ @publication = ] 'publication'
パブリケーションの名前を指定します。 publication は sysname で、既定値はありません。
[ @subscriber = ] 'subscriber'
サブスクライバーの名前です。 サブスクライバー は sysname で、既定値はありません。
[ @destination_db = ] 'destination_db'
コピー先データベースの名前を指定します。 destination_db は sysname で、既定値はありません。
[ @publisher = ] 'publisher'
Microsoft SQL Server 以外のパブリッシャーを指定します。 publisher は sysname で、既定値は NULL です。
注意
publisher は、SQL Server パブリッシャーに属するパブリケーションには使用しないでください。
リターン コードの値
0 (成功) または 1 (失敗)
解説
sp_marksubscriptionvalidation は、トランザクション レプリケーションで使用されます。
sp_marksubscriptionvalidationでは、SQL Server以外のサブスクライバーはサポートされていません。
SQL Server以外のパブリッシャーの場合、明示的なトランザクション内からsp_marksubscriptionvalidationを実行することはできません。 これは、パブリッシャーへのアクセスに使用されるリンク サーバー接続で明示的なトランザクションがサポートされていないためです。
sp_marksubscriptionvalidationは、sp_article_validation (Transact-SQL) と共に使用する必要があり、subscription_levelに 1 の値を指定し、他のサブスクライバーの現在開いているトランザクションをマークするために、sp_marksubscriptionvalidationの他の呼び出しと共に使用できます。
アクセス許可
sysadmin 固定サーバー ロールまたは固定データベース ロールdb_ownerメンバーのみがsp_marksubscriptionvalidation実行できます。
例
次のクエリは、サブスクリプションレベルの検証コマンドを通知するために、パブリッシング データベースに適用できます。 これらのコマンドは、指定されたサブスクライバーのディストリビューション エージェントによって取得されます。 最初のトランザクションではアーティクル 'art1' が検証され、2 番目のトランザクションでは 'art2' が検証されることに注意してください。 また、 sp_marksubscriptionvalidation と sp_article_validation (Transact-SQL) の呼び出しがトランザクションにカプセル化されていることにも注意してください。 sp_article_validation (Transact-SQL) の呼び出しは、トランザクションごとに 1 つだけお勧めします。 これは、 sp_article_validation (Transact-SQL) がトランザクションの間、ソース テーブルに対して共有テーブル ロックを保持するためです。 コンカレンシーを最大限に高めるために、トランザクションは短くしてください。
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art1',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art2',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
参照
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示