KB4465745-修复:当使用 SQL Server 2016 和2017中的 OUTPUT 子句运行 MERGE 语句时发生断言错误

症状

请考虑以下情况:

  • 在 Windows 的 SQL Server 2016 或2017中运行包含 OUTPUT 子句的 MERGE 语句或 SQL Server 或中的临时 SQL 批处理。

  • 目标数据库使用 BULK_LOGGED 或简单恢复模型。

  • 将大量数据(例如:6000行)插入到另一个数据库中的表中。

在这种情况下,会发生断言错误,并且你可能会收到类似于以下内容的错误消息:

消息3624,级别20,状态1,行 LineNumber

系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 在来自 Microsoft 的最新服务包或来自技术支持的修补程序中,可能会提供更新。

解决方案

累积更新信息:

在 SQL Server 的以下累积更新中修复了此问题:

      SQL Server 2017 的累积更新12

      SQL Server 2016 SP2 的累积更新4

      SQL Server 2016 Service Pack 1的累积更新13

      SQL Server 2016 SP1 的累积更新12

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

SQL Server 2017 的最新累计更新

SQL Server 2016 的最新累计更新

按需即时修复程序信息:

此问题已在 SQL Server 的以下按需 hotfixe 中修复:

状态

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

参考

了解 Microsoft 用于描述软件更新的 术语

需要更多帮助?

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

此信息是否有帮助?

谢谢您的反馈意见!

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

×