症状
假设你有一个已分区表,该分区表在 Microsoft SQL Server 2014 中构建了聚集列存储索引(CCI)。 当您尝试使用大容量插入操作(例如,插入到 ...)将行插入到该表中时 选择 "来自 ..."),如果下列条件适用于您的表,SQL Server 可能引发访问冲突(AV)错误:
-
该表在第二列或更高列上具有 CHECK 约束。
-
通过表中的 CHECK 约束除去列前面的一个或多个列,从而在列序号中产生间隙。
-
然后,将数据批量插入到第二个分区或后续分区(但不是第一个分区)中,该分区为:
-
使用 "改变索引" 进行重组 .。。 重建分区 = <分区号、第二个或更高版本>。
-
使用 ALTER TABLE 切换了一个阶段表 .。。 切换到 .。。 分区 <分区号、第二或更高>。
-
发生这种情况时,你可能会收到类似于以下内容的错误消息,并且会在 SQL Server 错误日志文件夹中自动生成 AV 转储文件:
错误消息: 消息596,级别21,状态1,行 LineNumber 无法继续执行,因为会话处于 kill 状态。 消息0,级别20,状态0,行 LineNumber 当前命令出现严重错误。 应丢弃结果(如果有)。
解决方案
在 SQL Server 的以下累积更新中修复了此问题:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语。