我有一个使用 SQL Server 2008 的可更新事务复制集。一切运行正常。
我通过 向现有发布添加了一个新表,sp_addarticle
然后运行sp_addsubscription
。之后,我运行了快照代理。快照仅针对新添加的表生成。因此,新表已成功复制到订阅者。我甚至可以将新插入到新表中的记录复制到订阅者。
但反过来就不行了。当我在订阅者数据库的新表中插入一条记录时,出现了错误
消息 515“无法将值 NULL 插入到表 Servername.dbo.Tablename 的列“msrepl_tran_version”中;列不允许为空。INSERT 失败。”。
请帮我解决这个问题。
提前致谢。
Geeta
答案1
该错误告诉您,订阅者数据库上尚未设置 msrepl_tran_version 表的默认值(或者您故意在 INSERT 语句中尝试将该列设置为 NULL)。它需要有一个默认值 newid()。但我不确定为什么没有设置它。