症状
请考虑以下情况:
-
在运行 Microsoft SQL Server 2012 的计算机上配置事务复制。
-
通过将allow_initialize_from_backup属性设置为N'true "来调用sp_addpublication存储过程。 这将在发布服务器上添加发布。
-
通过将属性类型设置为"仅 N'proc 架构"来调用 sp_addarticle 存储过程。 这将在发布服务器上添加一个仅限架构的存储过程项目。
-
调用 sp_addarticle 存储过程以添加表项目。 这将在发布者上复制一个名为 "table1" 的表。
在此方案中,不会在订阅数据库上生成 sp_MSdel_table1、 sp_MSins_table1和 sp_MSupd_table1 存储过程。 注意如果不添加仅限架构的存储过程项目,则不会发生此问题。
解决方案
累积更新信息
SQL Server 2012 Service Pack 1 的累积更新5
此问题的修补程序首次在累积更新5中发布。有关如何获取此累积更新包的 SQL Server 2012 Service Pack 1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2861107 SQL Server 2012 的累积更新程序包 5 Service Pack 1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 Service Pack 1 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2772858 在发布 SQL Server 2012 Service Pack 1 之后发布的 SQL Server 2012 版本
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方法
若要解决此问题,请执行以下操作:
-
当执行sp_addpublication时,将allow_initialize_from_backup属性设置为N'false " 。
-
将表文章添加到发布者。
-
通过将allow_initialize_from_backup属性设置为true来执行sp_changepublication存储过程。 例如,存储过程如下所示:exec sp_changepublication@publication = N'$(PublicationName)',@property = N'allow_initialize_from_backup',@value = N'true'