应用对象
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 2 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) SQL Server 2019 on Windows

症状

设想 在 Microsoft SQL Server 中的服务器级别启用隐式事务。 你会注意到以下断言转储是持续产生的:

<DateTime> spid NNs * 开始堆栈转储:

<DateTime> spid NNs * <DateTime> spid NN

<DateTime> spid NNs *

<DateTime> spid NNs * 位置: purecall:LineNumber

<DateTime> spid NNs * 表达式:   !"purecall"

<DateTime> spid NNs * SPID:5

<DateTime> spid NNs * 进程 ID: ProcessID

<DateTime> spid NNs * 说明:纯虚拟 函数调用

<DateTime> spid NNs 错误:17065,严重性:16,状态:1。

<DateTime> spid NNs SQL Server 断言:文件: <purecall>,line =LineNumber 失败断言 = '! "purecall "' Pure 虚拟函数调用。 此错误可能与计时有关。 如果错误仍然存在 重新运行该语句后,请使用 DBCC CHECKDB 检查数据库 结构完整性,或重启服务器以确保内存中的数据结构 未损坏。

<DateTime> spid NNs 错误:3624,严重性:20,状态:1。

<DateTime> spid NNs 系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常情况下,声明失败 由软件错误或数据损坏导致的。 若要检查数据库是否损坏, 请考虑运行 DBCC CHECKDB。 如果你同意在此期间将转储发送到 Microsoft 设置,将向 Microsoft 发送一个小转储。 可用更新可能来自 来自技术支持部门的最新服务包或修补程序中的 Microsoft。

此外,你 在 SQL 错误日志中,可能还会收到类似于以下内容的未送达消息:

<DateTime> 服务器进程0:0:0 (0x3c08)工作线程 在计划程序10上,0x00000242BD8EA160 似乎不可生成。 线程创建 时间:13228659375902。 大约使用线程 CPU:内核 0 ms,用户 52312 ms。 流程利用率16%。 系统闲置70%。 间隔: 70347 ms。

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

解决方案

累积更新信息: 

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

关于 SQL Server 的累积更新:

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

参考

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

需要更多帮助?

需要更多选项?

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