適用対象:SQL Server
Azure SQL Managed Instance
記事検証は、PublisherとSubscriberの表記事の公開データが同一かどうかを確認します。 それらがそうでない場合、非収束を示している可能性があります。 詳細については、「レプリケートされたデータの検証」 を参照してください。 しかし、検証はパスまたは失敗情報のみを返し、送信元と宛先テーブルの違いについての詳細は提供しません。 tablediff コマンド プロンプト ユーティリティを使用すると、2 つのテーブル間の相違について詳細な情報を取得できるだけでなく、サブスクリプションをパブリッシャー側のデータに収束させるための Transact-SQL スクリプトを生成することもできます。
注
tablediff ユーティリティは、SQL Server サーバーでのみサポートされます。
tablediff を使用してレプリケートされたテーブルを比較し相違点を確認するには
レプリケーション トポロジの任意のサーバーで、コマンド プロンプトから tablediff Utilityを実行します。 次のパラメーターを指定します。
-sourceserver - データが正しいとわかっている方のサーバー (通常はパブリッシャー) の名前。
-sourcedatabase - 正しいデータが格納されているデータベースの名前。
-sourcetable - 比較対象の記事のソーステーブルの名前。
(省略可) -sourceschema - 比較元テーブルのスキーマ所有者 (既定のスキーマを使用しない場合)。
(省略可) SQL Server 認証を使用してパブリッシャーに接続する場合は、 -sourceuser および -sourcepassword を指定します。
重要
可能な場合は、Windows 認証を使用します。 SQL Server 認証を使用する必要がある場合は、セキュリティ資格情報の入力を、ユーザーに対して実行時に求めるようにしてください。 資格情報をスクリプト ファイルに含める必要がある場合は、不正なアクセスが行われないようにファイルをセキュリティで保護してください。
-destinationserver - 比較対象のデータが格納されているサーバー (通常はサブスクライバー) の名前。
-DestinationDatabase - 比較対象のデータベース名。
-destinationtable - 比較対象テーブルの名前。
(省略可) -destinationschema - 比較対象テーブルのスキーマの所有者 (既定のスキーマを使用しない場合)。
(省略可) SQL Server 認証を使用してサブスクライバーに接続する場合、-destinationuser および -destinationpassword。
重要
可能な場合は、Windows 認証を使用します。 SQL Server 認証を使用する必要がある場合は、セキュリティ資格情報の入力を、ユーザーに対して実行時に求めるようにしてください。 資格情報をスクリプト ファイルに含める必要がある場合は、不正なアクセスが行われないようにファイルをセキュリティで保護してください。
(省略可) 列レベルの比較を行う場合は、 -c を使用します。
(省略可) 短時間で処理が済むように行数およびスキーマのみの比較を行う場合は、 -q を使用します。
(省略可) -o に、結果の出力先ファイルの名前とパスを指定します。
(省略可) 結果を挿入するサブスクリプション データベース内のテーブルを -etに指定します。 テーブルが既に存在する場合は、 -dt を指定して、最初にテーブルを削除します。
(省略可) サブスクライバー側のデータをパブリッシャー側のデータと一致するように修正するための Transact-SQL ファイルを生成する場合は、-f を使用します。 各ファイルの Transact-SQL ステートメントの数を指定するには、-df を使用します。
(省略可) 操作を再試行する回数と再試行間隔を指定するには、 -rc および -ri を使用します。
(省略可) 比較元テーブルと比較先テーブル間の完全なスキーマの比較を実行するには、 -strict を使用します。