如何在 SQL Server 2008 R2 复制的架构中包含默认值设置

How to include default value settings in the schema for SQL Server 2008 R2 replication

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

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

但是,当我在使用 SSMS 的设计视图中查看订阅者上的一些复制 table 时,它们缺少发布者数据库中存在的 "Default value or binding" 部分中的值。

我在发布属性中找不到任何关于 "Default value or binding" 的设置。我在出版物属性的订阅选项选项卡中将 "Replicate schema changes" 设置为 true。

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

例如,这是与我在其中遇到此问题的一个特定 table 相关的复制脚本部分。

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]' 

在此先感谢您的帮助。

我删除了上一个答案,因为我对您的复制类型给出了错误的回复。当您 select 发布的文章时,有一个设置可以 将默认值规范 复制到订阅者,默认情况下该值为 false。将该值设置为 true 应确保约束应用于订阅者。在 select 阅读您的文章时请参阅 "Article Properties"。您可以申请全部或一个。