修复︰ 断言出现在 SQL Server 2016年聚集的 columnstore 索引上运行 UPDATE 语句时

错误 #: 9704568 (sqlbuvsts01)
错误 #: 61031 (内容的想法)

症状

在 Microsoft SQL Server 2016年 (CCI) 为 columnstore 聚集的索引的表上运行UPDATE语句时,可能会收到类似于以下断言错误︰

Location:     "bpbatch.cpp":240
表达式: (BP_VECTOR_ID)(iNew + 1) = = iNew + 1
SPID: 55
进程 ID: 1556年

Msg 3624,级别 20 状态 1,第 1 行

系统断言检查已失败。请检查 SQL Server 错误日志以了解详细信息。通常情况下,断言失败被由于软件错误或数据损坏。若要检查数据库损坏,请考虑运行 DBCC CHECKDB。如果您在安装过程中向 Microsoft 发送转储,则最小转储将发送给 Microsoft。更新可以从 Microsoft 或最新的 Service Pack 中从技术支持的修补程序。

消息 596,21 日状态 1,0 行级别

由于会话处于终止状态,则无法继续执行。

消息 0,级别 20,状态 0,行 0

当前命令发生了严重错误。 应放弃任何可能产生的结果。

解决方案

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

对于 SQL Server 2016 SP1 的累积更新 3

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

SQL Server 2016 的最新累积更新

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

调用堆栈信息 0:163> kcL  # Call Site 00 ntdll!ZwWaitForSingleObject 01 KERNELBASE!WaitForSingleObjectEx 02 sqlservr!CDmpDump::DumpInternal 03 sqlservr!CDmpDump::DumpFilter 04 sqlservr!`CDmpDump::Dump'::`1'::filt$0 05 msvcr120!__C_specific_handler 06 ntdll!RtlpExecuteHandlerForException 07 ntdll!RtlDispatchException 08 ntdll!RtlRaiseException 09 KERNELBASE!RaiseException 0a sqlservr!CDmpDump::Dump 0b sqllang!SQLDumperLibraryInvoke 0c sqllang!SQLLangDumperLibraryInvoke 0d sqllang!CImageHelper::DoMiniDump 0e sqllang!stackTrace 0f sqllang!utassert_fail_imp 10 sqldk!utassert_fail 11 sqlmin!CBpBatch::AllocateVectorSlow 12 sqlmin!CBpBatch::AllocateVector 13 sqlmin!ColumnDataSetSession::PrepareColumnBatchForFetch 14 sqlmin!ColumnDataSetSession::FetchNextColumnBatch 15 sqlmin!NormalColumnDataSet::FetchNextColumnBatch 16 sqlmin!ColumnsetSS::FetchNextColumnBatch 17 sqlmin!CBpQScanColumnStoreScan::BpGetNextBatch 18 sqlmin!CBpQScanFilter::BpGetNextBatch 19 sqlmin!CBpQScanProject::BpGetNextBatch 1a sqlmin!CBpQScan::GetNextRootBatch 1b sqlmin!CQScanBatchHelper::GetRow 1c sqlmin!CQScanSplitNew::GetRow 1d sqlmin!CQScanSortNew::BuildSortTable 1e sqlmin!CQScanSortNew::OpenHelper 1f sqlmin!CQScanNew::OpenHelper 20 sqlmin!CQScanUpdateNew::Open 21 sqlmin!CQScanSpoolNew::LoadSpool 22 sqlmin!CQScanSpoolNew::Open 23 sqlmin!CQScanSortNew::BuildSortTable 24 sqlmin!CQScanSortNew::OpenHelper 25 sqlmin!CQScanNew::OpenHelper 26 sqlmin!CQScanRowsetNew::OpenHelper 27 sqlmin!CQScanRangePrefetchDelayNew::Open 28 sqlmin!CQScanNew::OpenHelper 29 sqlmin!CQScanUpdateNew::Open 2a sqlmin!CQScanSequenceNew::Open 2b sqlmin!CQueryScan::StartupQuery 2c sqllang!CXStmtQuery::SetupQueryScanAndExpression 2d sqllang!CXStmtQuery::InitForExecute 2e sqllang!CXStmtQuery::ErsqExecuteQuery 2f sqllang!CXStmtDML::XretDMLExecute 30 sqllang!CXStmtDML::XretDoExecute 31 sqllang!CXStmtDML::XretExecute 32 sqllang!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn 33 sqllang!CMsqlExecContext::ExecuteStmts<1,1> 34 sqllang!CMsqlExecContext::FExecute 35 sqllang!CSQLSource::Execute 36 sqllang!process_request 37 sqllang!process_commands_internal 38 sqllang!process_messages 39 sqldk!SOS_Task::Param::Execute 3a sqldk!SOS_Scheduler::RunTask 3b sqldk!SOS_Scheduler::ProcessTasks 3c sqldk!SchedulerManager::WorkerEntryPoint 3d sqldk!SystemThread::RunWorker 3e sqldk!SystemThreadDispatcher::ProcessWorker 3f sqldk!SchedulerManager::ThreadEntryPoint 40 kernel32!BaseThreadInitThunk 41 ntdll!RtlUserThreadStart

参考资料

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

KE: v-fmeng
Author: 
Writer: v-madora
技术审阅︰ sanat;jaynar;sete;v-fmeng;
编辑器︰ v-phoebh

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×