KB4539947 - 修复:在 SQL Server 2016 中运行 DATABASE SCOPED 命令时发生断言

应用对象
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)

症状

假设您使用 Microsoft SQL Server 2016。 当您运行 ALTER 命令以更改数据库范围的配置并使用函数 fn_dblog 检索数据库的修改行时,您可能会收到断言错误。 这是更改数据库范围配置参数的命令之一。

ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = Off;

此外,类似以下的消息将记录在 SQL Server 错误日志中。

      

< DateTime> spid<n> 使用“dbghelp.dll”版本“4.0.5”

< DateTime> spid<n> **转储线程 - spid = 0, EC = 0x0000028909775730

< DateTime> spid<n> ***堆栈转储正在发送到 <FilePath\FileName>\SQLDump<nnnnn>.txt

< DateTime> spid<n> * *******************************************************************************

< DateTime> spid<n> *

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

< DateTime> spid<n> * <DateTime> spid <SPID>

< DateTime> spid<n> *

< DateTime> spid<n> * 位置:medutil.cpp:LineNumber

< DateTime> spid<n> * Expression: FALSE

< DateTime> spid<n> * spid: <SPID>

< DateTime> spid<n> * 进程 ID: <PID>

< DateTime> spid<n> * 说明:无效的切换值

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

此问题已在 SQL Server 的累积更新中进行了修复:

关于 SQL Server 的累积更新:

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

参考资料

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