症状
请考虑以下情况:
-
您正在使用Microsoft SQL Server 2016。
-
你有一个时态表,该表在打开系统版本控制之前或期间已分区。
-
已配置自动创建的(匿名或默认)历史记录表。
-
关闭系统版本控制,然后在历史记录表上运行 ALTER TABLE SWITCH 分区语句。
在这种情况下, 你将收到类似于以下内容的断言错误:
消息3624,级别20,状态1, LineNumber 系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 在来自 Microsoft 的最新服务包或来自技术支持的修补程序中,可能会提供更新。 消息596,级别21,状态1, LineNumber 无法继续执行,因为会话处于 kill 状态。 消息0,级别20,状态0, LineNumber 当前命令出现严重错误。 应丢弃结果(如果有)。
解决方案
以下更新中包含此问题的修复程序:
SQL Server 2016 的每个新版本都包含上一版本中包含的所有修补程序和所有安全修补程序。 我们建议你安装 SQL Server 2016 的最新版本。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。