【问题标题】:Adding new article to transactional replication gives error at subscriber向事务复制添加新文章会导致订阅者出错
【发布时间】:2010-10-05 11:34:40
【问题描述】:

我有一个使用 SQL Server 2008 的可更新事务复制集。一切正常。我通过 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.'*.

请帮我解决这个问题。

提前非常感谢。吉塔

【问题讨论】:

    标签: sql sql-server-2008 transactional-replication


    【解决方案1】:

    这是可重现的错误吗?订阅者是否配置为立即更新?在即时更新订阅者的情况下,只要发布者(或网络)不可用,事务就会失败。

    检查并更改,如果没有,请更改您的表,以便 ms_repl_tran_version 默认为 GUID:

    ALTER TABLE [dbo].[TableName] 添加 约束 [DFLT_GUID_msrepl] 默认 (newid()) FOR [msrepl_tran_version]

    【讨论】:

    • 它是可重现的,因为我在测试环境中设置并且订阅者配置为立即更新。
    • 感谢您的解决方案。在订阅者数据库中插入记录可以正常工作。但是,插入的记录不会复制回发布者数据库。
    猜你喜欢
    • 2011-03-28
    • 2010-12-11
    • 2017-05-21
    • 2010-10-04
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多