質問: レプリケーションによって列が追加されるのはなぜですか。この列は、テーブルのパブリッシュをやめると削除されますか。
回答: 変更を追跡するため、マージ レプリケーションとキュー更新サブスクリプションを使用したトランザクション レプリケーションでは、パブリッシュされたすべてのテーブルのすべての行を一意に識別できる必要があります。 これには、以下を行う必要があります。 マージ レプリケーションでは、列 rowguid がすべてのテーブルに追加されます。ただし、データ型が uniqueidentifier で rowguidcol プロパティが設定されている列が、テーブルに既にある場合を除きます (このような列がある場合は、その列が使用されます)。 テーブルがパブリケーションから削除されると、 rowguid 列も削除されます。既存の列を追跡に使用していた場合は、その列は削除されません。 トランザクション パブリケーションがキュー更新サブスクリプションをサポートしている場合は、レプリケーションによってすべてのテーブルに msrepl_tran_version 列が追加されます。 テーブルがパブリケーションから削除されても、 msrepl_tran_version 列は削除されません。 フィルターには、レプリケーションで行の識別に使用される rowguidcol を含めることはできません。 既定では、これはマージ レプリケーションのセットアップ時に追加される列であり、 rowguid という名前が付けられます。