1

SQLServer2008で更新可能なトランザクションレプリケーションを設定しています。すべてが正常に機能しています。sp_addarticleに続いてsp_addsubscriptionを使用して、既存のパブリケーションに新しいテーブルを追加しました。その後、スナップショットエージェントを実行しました。スナップショットは、新しく追加されたテーブルに対してのみ生成されています。そのため、新しいテーブルはサブスクライバーに正常に複製されました。新しく挿入されたレコードをサブスクライバーの新しいテーブルに複製することもできます。しかし、その逆は不可能です。サブスクライバデータベースの新しいテーブルにレコードを挿入すると、エラーが発生します

*Msg 515 'Cannot insert the value NULL into column 'msrepl_tran_version',
 table Servername.dbo.Tablename'; column does not allow nulls. INSERT fails.'*.

この問題の解決にご協力ください。

よろしくお願いします。ジータ

4

1 に答える 1

0

再現可能なエラーですか?サブスクライバーは即時更新として構成されていますか? Immediate Updating サブスクライバの場合、パブリッシャ (またはネットワーク) が利用できない場合は常にトランザクションが失敗します。

ms_repl_tran_version がデフォルトで GUID になるようにテーブルを確認して変更します。

ALTER TABLE [dbo].[TableName] ADD CONSTRAINT [DFLT_GUID_msrepl] DEFAULT (newid()) FOR [msrepl_tran_version]

于 2010-10-05T19:23:40.123 に答える