MSmerge_conflicts_info (Transact-SQL)
MSmerge_conflicts_info テーブルは、サブスクリプションをマージ パブリケーションに同期する際に発生する競合を追跡します。競合で失われる行データは、競合が発生したアーティクルの MSmerge_conflict_publication_article テーブル内に格納されます。このテーブルは、パブリッシャ側ではパブリケーション データベースに、サブスクライバ側ではサブスクリプション データベースに格納されます。
列名 |
データ型 |
説明 |
---|---|---|
tablenick |
int |
パブリッシュされたテーブルのニックネームです。 |
rowguid |
uniqueidentifier |
競合している行の識別子です。 |
origin_datasource |
nvarchar(255) |
競合している変更が発生したデータベースの名前です。 |
conflict_type |
int |
発生した競合の種類です。次のいずれかの値をとります。 1 = 更新の競合 : 行レベルで競合が検出されています。 2 = 列更新の競合 : 列レベルで競合が検出されています。 3 = 更新より削除が優先される競合 : 競合で削除が優先されます。 4 = 削除より更新が優先される競合 : 競合を避けるために削除された rowguid がこのテーブルに記録されています。 5 = 挿入のアップロードに失敗 : サブスクライバからの挿入がパブリッシャで適用されませんでした。 6 = 挿入のダウンロードに失敗 : パブリッシャからの挿入がサブスクライバで適用されませんでした。 7 = 削除のアップロードに失敗 : サブスクライバでの削除がパブリッシャにアップロードされませんでした。 8 = 削除のダウンロードに失敗 : パブリッシャでの削除がサブスクライバにダウンロードされませんでした。 9 = 更新のアップロードに失敗 : サブスクライバでの更新がパブリッシャで適用されませんでした。 10 = 更新のダウンロードに失敗 : パブリッシャでの更新がサブスクライバで適用されませんでした。 11 = 解決 12 = 論理レコードの削除より更新が優先 : 競合を避けるために削除された論理レコードがこのテーブルに記録されています。 13 = 論理レコードの挿入と更新が競合 : 論理レコードへの挿入が更新と競合しています。 14 = 論理レコードの更新より削除が優先される競合 : 競合を避けるために更新された論理レコードがこのテーブルに記録されています。 |
reason_code |
int |
状況依存のエラー コードです。更新 - 更新、および更新 - 削除の競合の場合、この列の値は conflict_type と同じになります。ただし、変更の失敗による競合の場合は、マージ エージェントが変更を適用できなかったことを示すエラーが理由コードとなります。たとえば、主キー違反が原因で、マージ エージェントがサブスクライバに挿入を適用できない場合は、conflict_type として 6 ("挿入のダウンロードの失敗")、reason_code として 2672 がログに記録されます。これは、主キー違反を示す SQL Server 内部エラー メッセージ ("制約 '%.*ls' の %ls 違反。オブジェクト '%.*ls' には重複したキーを挿入できません。") です。 |
reason_text |
nvarchar(720) |
状況依存のエラーの説明です。 |
pubid |
uniqueidentifier |
パブリケーションの識別子です。 |
MSrepl_create_time |
datetime |
競合が発生した時刻です。 |
origin_datasource_id |
uniqueidentifier |
競合している変更が発生したデータベースの識別子です。 |