sp_publication_validation (Transact-SQL)

指定したパブリケーションの各アーティクルに対する検証の要求を開始します。 このストアド プロシージャは、パブリッシャー側でパブリケーション データベースについて実行されます。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

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 で、次のいずれかの値を指定できます。

    説明

    0

    SQL Server 7.0 互換のチェックサムを実行します。

    注意

    アーティクルが行方向にフィルター選択されている場合、チェックサム操作ではなく行数操作が実行されます。

    1 (既定値)

    行数のチェックのみを実行します。

    2

    行数とバイナリのチェックサムを実行します。

    注意

    SQL Server バージョン 7.0 サブスクライバーの場合、行数検証のみが実行されます。

  • [@full_or_fast=] full_or_fast
    行数の計算で使用する方法を指定します。 full_or_fast のデータ型は tinyint で、次のいずれかの値を指定できます。

    説明

    0

    COUNT(*) を使用してフル カウントします。

    1

    sysindexes.rows から高速カウントを行います。 sys.sysindexes での行のカウントは、実際のテーブル内での行のカウントよりもはるかに高速に処理されます。 ただし、sys.sysindexes の更新に時間がかかるため、行数が正確ではない場合があります。

    2 (既定値)

    最初に高速カウントを試み、条件高速カウントを行います。 高速カウントに違いが見られる場合、フル カウントに戻されます。 expected_rowcount が NULL で、このストアド プロシージャを使って値を取得する場合、常に COUNT(*) によるフル カウントが使用されます。

  • [ @shutdown_agent=] shutdown_agent
    検証の完了後すぐにディストリビューション エージェントをシャットダウンするかどうかを指定します。 shutdown_agent のデータ型は bit で、既定値は 0 です。 0 の場合、レプリケーション エージェントはシャットダウンされません。 1 の場合、最後のアーティクルの検証が終了すると、レプリケーション エージェントはシャットダウンされます。

  • [ @publisher = ] 'publisher'
    SQL Server 以外のパブリッシャーを指定します。 publisher のデータ型は sysname で、既定値は NULL です。

    注意

    SQL Server パブリッシャーについての検証を要求する場合は、publisher は使用しないでください。

リターン コードの値

0 (成功) または 1 (失敗)

説明

sp_publication_validation は、トランザクション レプリケーションで使用します。

sp_publication_validation は、パブリーケーションと関連するアーティクルをアクティブ化した後は、常に呼び出すことができます。 このプロシージャは、指定日時に手動で実行するか、またはデータを検証する定期的スケジュールに組み込んだジョブの一部として実行することができます。

アプリケーションが即時更新サブスクライバーを使用している場合、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)

概念

サブスクライバーでのデータの検証