KB2546715-修复:当自定义存储过程在 SQL Server 2008 或 SQL Server 2008 R2 中传播事务复制的数据更改时,为非收敛

Microsoft 将 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 修补程序分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 或 SQL Server 2008 R2 版本的所有修补程序和所有安全修补程序。

症状

请考虑以下情况:

  • 在 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 中配置数据库的事务复制。

  • 在订阅服务器上创建自定义存储过程,以将来自发布者的数据更改传播到订阅者。

  • 自定义存储过程包含一个 SELECT 语句,该语句返回针对发布者的项目的结果集。 此 SELECT 语句位于 INSERT、 UPDATE或 DELETE 语句之前。

  • SELECT语句后的语句遇到错误。例如,自定义存储过程包含以下代码:

    Create procedure [sp_ins_MyTable]    @c1 int,    @c2 varchar(50)    @c3 varchar(50)asbegin              select 1 -- In reality this would be any statement that returns a result set            insert into Mytable( column1, column2, column3) values ( @C1, @C2, @C3)end 

在此方案中,在 SQL Server 2008 或 SQL Server 2008 R2 中出现非收敛。

解决方案

累积更新信息

SQL Server 2008 Service Pack 3

此问题的修补程序首次发布于 SQL Server 2008 Service Pack 3 的累积更新1。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2617146 SQL Server 2008 的累积更新包 1 Service Pack 3注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 Microsoft 建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2629969 发布 SQL server 2008 Service Pack 3 后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 3 修补程序应用到 SQL Server 2008 Service Pack 3 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。

SQL Server 2008 R2

此问题的修补程序首次在累积更新9中发布。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2567713 SQL Server 2008 R2 的累积更新包9 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本

SQL Server 2008 R2 Service Pack 1

此问题的修补程序首次在 SQL Server 2008 R2 Service Pack 1 的累积更新2中发布。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2567714 SQL Server 2008 R2 Service Pack 1 的累积更新包2注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本 SQL Server 2008 SP2 CU5累积更新5中第一次发布此问题的修复。有关如何为 SQL Server 2008 Service Pack 2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2555408 SQL Server 2008 的累积更新程序包 5 Service Pack 2注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 Service Pack 2 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2402659 发布 SQL Server 2008 Service Pack 2 后发布的 SQL Server 2008 版本

更多信息

有关如何配置将更改从发布者传播到订阅者的详细信息,请访问以下 MSDN 网站:

如何配置从发布服务器到订阅服务器的更改的传播

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×