症状
假设你在 SQL Server 2014 中创建了内存优化表。 然后,针对该表提交查询,查询将指定 SQL Server 无法识别的提示。 例如,你提交以下查询:
SELECT * FROM dbo.ShoppingCart (non_existing_hint) WHERE ShoppingCartId = 1;
在这种情况下,SQL Server 可能崩溃,并收到以下错误消息:
消息3624,级别20,状态1,第27行系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 在来自 Microsoft 的最新服务包或来自技术支持的修补程序中,可能会提供更新。
安装更新后,SQL Server 在这种情况下不会崩溃,并收到一条类似于以下内容的错误消息:
对于内存优化的表,消息10794、Level 16、State 86、Line 26The 表选项 "xxxxx" 不受支持。
解决方案
累积更新信息
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 我们建议你下载并安装 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。