Applies ToSQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

症状

请考虑以下情况:

  • 在 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 用于描述软件更新的 术语

需要更多帮助?

需要更多选项?

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

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