sp_publication_validation (Transact-SQL)
適用対象: SQL ServerAzure SQL Managed Instance
指定したパブリケーション内の各アーティクルに対してアーティクル検証要求を開始します。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。
構文
sp_publication_validation [ @publication = ] 'publication'
[ , [ @rowcount_only = ] type_of_check_requested ]
[ , [ @full_or_fast = ] full_or_fast ]
[ , [ @shutdown_agent = ] shutdown_agent ]
[ , [ @publisher = ] 'publisher' ]
引数
[ @publication = ] 'publication'
パブリケーションの名前を指定します。 publication は sysname で、既定値はありません。
[ @rowcount_only = ] 'rowcount_only'
テーブルの行数のみを返すかどうかを指定します。 rowcount_onlyは smallint で、次のいずれかの値を指定できます。
Value | 内容 |
---|---|
0 | SQL Server 7.0 互換チェックを実行します。 注: アーティクルを水平方向にフィルター処理すると、チェックsum 操作ではなく行数操作が実行されます。 |
1 (既定値) | 行数チェックのみを実行します。 |
2 | 行数とバイナリ チェックsum を実行します。 注: SQL Server バージョン 7.0 サブスクライバーの場合、行数の検証のみが実行されます。 |
[ @full_or_fast = ] 'full_or_fast'
行数の計算に使用されるメソッドです。 full_or_fastは tinyint で、次のいずれかの値を指定できます。
Value | 内容 |
---|---|
0 | COUNT(*) を使用してフル カウントします。 |
1 | sysindexes.rows からの 高速カウントを行います。 sys.sysindexes での行のカウントは、実際のテーブル内の行をカウントするよりもはるかに高速です。 ただし、sys.sysindexes は遅延更新されるため、行数が正確でない可能性があります。 |
2 (既定値) | 最初に高速カウントを試み、条件高速カウントを行います。 高速メソッドが違いを示す場合は、完全なメソッドに戻ります。 expected_rowcountが NULL で、ストアド プロシージャが値の取得に使用されている場合は、常に完全な COUNT(*) が使用されます。 |
[ @shutdown_agent = ] 'shutdown_agent'
検証が完了した直後にディストリビューション エージェントをシャットダウンするかどうかを指定します。 shutdown_agentはビットで、既定値は 0 です。 0 の場合、レプリケーション エージェントはシャットダウンしません。 1 の場合、レプリケーション エージェントは最後の記事が検証された後にシャットダウンします。
[ @publisher = ] 'publisher'
SQL Server 以外のパブリッシャーを指定します。 publisher は sysname で、既定値は NULL です。
Note
SQL Server パブリッシャー で検証を要求する場合は、パブリッシャーを使用しないでください。
リターン コードの値
0 (成功) または 1 (失敗)
解説
sp_publication_validationはトランザクション レプリケーションで使用されます。
sp_publication_validationは、パブリケーションに関連付けられているアーティクルがアクティブ化された後、いつでも呼び出すことができます。 プロシージャは、手動で (1 回) 実行することも、データを検証する定期的にスケジュールされたジョブの一部として実行することもできます。
アプリケーションに即時更新サブスクライバーがある場合、 sp_publication_validation は誤ったエラーを検出する可能性があります。 sp_publication_validation最初にパブリッシャーで行数またはチェック数を計算し、次にサブスクライバーで計算します。 行数またはチェックサムがパブリッシャーで完了していて、サブスクライバーでは完了していない場合、即時更新トリガーはサブスクライバーからパブリッシャーに更新を通知できるため、値が変更される可能性があります。 パブリケーションの検証中にサブスクライバーとパブリッシャーの値が変更されないようにするには、検証中のパブリッシャーでの Microsoft 分散トランザクション コーディネーター (MS DTC) サービスを停止します。
アクセス許可
sp_publication_validationを実行できるのは、sysadmin 固定サーバー ロールまたはdb_owner固定データベース ロールのメンバーだけです。
参照
サブスクライバーでのデータの検証
sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示