【问题标题】:How to include default value settings in the schema for SQL Server 2008 R2 replication如何在 SQL Server 2008 R2 复制的架构中包含默认值设置
【发布时间】:2017-07-26 22:47:58
【问题描述】:

我在两个运行 SQL Server 2008 R2 的独立 Windows 2008 R2 服务器之间设置了事务复制。我在发布服务器上使用 SSMS 来设置复制。

我在创建发布文章时选择了数据库中的所有内容。 (表、存储过程、视图、索引视图和用户定义函数)。我创建了快照,然后开始复制。一切似乎工作正常。我没有收到任何错误。

但是,当我在使用 SSMS 的设计视图中查看订阅者上的一些复制表时,它们在发布者数据库中存在的“默认值或绑定”部分中缺少值。

我在发布属性中找不到任何有关“默认值或绑定”的设置。我在发布属性的订阅选项选项卡中将“复制架构更改”设置为 true。

我在这里缺少什么?复制不应该将表架构中设置的任何默认值复制到订阅者吗?

作为示例,这里是与我在其中看到此问题的一个特定表相关的复制脚本部分。

exec sp_addarticle @publication = N'Main_All', @article =    N'Piece_Details2', @source_owner = N'dbo', @source_object = N'Piece_Details', @type = N'logbased', @description = N'', @creation_script = N'', @pre_creation_cmd = N'drop', @schema_option = 0x000000000803509F, @identityrangemanagementoption = N'none', @destination_table = N'Piece_Details', @destination_owner = N'dbo', @status = 24, @vertical_partition = N'false', @ins_cmd = N'CALL [sp_MSins_dboPiece_Details]', @del_cmd = N'CALL [sp_MSdel_dboPiece_Details]', @upd_cmd = N'SCALL [sp_MSupd_dboPiece_Details]' 

提前感谢您的帮助。

【问题讨论】:

    标签: sql-server-2008-r2 database-schema windows-server-2008-r2 transactional-replication


    【解决方案1】:

    我删除了上一个答案,因为我对您的复制类型给出了错误的响应。当您选择要发布的文章时,有一个设置可以将默认值规范复制给订阅者,默认情况下该值为 false。将该值设置为 true 应确保将约束应用于订阅者。选择文章时请参阅“文章属性”。你可以申请全部或一个。

    【讨论】:

    • 感谢您为我指明正确的方向。您知道有什么方法可以编辑现有出版物以应用此更改吗?
    • 您可以查看 sp_changearticle,但是,您的文章更改需要一个新的快照才能复制。
    • 我决定按照您的建议重新创建出版物并选择正确的属性。感谢您的所有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多