使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设你在 Microsoft SQL Server 2008 中使用事务复制,并且在发布上运行有一个更新查询。 如果将 SQL Server 升级到 SQL Server 2012 或 SQL Server 2014,并且更新查询未在升级前分发,则日志读取器代理可能会失败,并出现以下错误:

<Date> <Time> Publisher: {call sp_replcmds (500,0,0,0,500000)}<日期> <时间> 状态:0,代码:20011,文本: "进程无法在" Sp_replcmds 发布者名称< "上执行">"。<Date> <Time> 进程无法在 "<Publisher Name>" 上执行 "sp_replcmds"。<Date> <Time> 复制代理状态: 6<日期> <时间> 状态:0,代码:542,文本: "遇到无效的 datetime 值。 值超过9999年。 "。<Date> <Time> 状态:0,代码:3621,文本: ' 语句已终止。 '。<Date> <Time> 状态:0,代码:22037,文本: "进程无法在" 上执行 "sp_replcmds"<发布者名称>"。"。

即使没有出现此问题,也可以通过日志读取器代理对更新语句的已升级日志记录进行误解,并且分发代理中可能会出现以下错误:

515不能将值 NULL 插入列 "<列名称>",table "<表名称>";列不允许空值。 更新失败。

注意

  • 不同的数据类型和约束可能导致报告不同的错误,并且此问题甚至可能导致不收敛。

  • 从 SQL Server 2008 或 sql server 2008 R2 升级到 SQL Server 2012 或 SQL Server 2014 时出现此问题。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

状态

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

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×