Отнася се за
SQL Server 2008 Service Pack 3 SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Standard SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Симптоми

Когато изпълнявате сложна инструкция за актуализиране заедно с NOLOCK намек за таблица в Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 или SQL Server 2014, е възможно да възникне повреда в индекса на неклъстерен индекс. Освен това може да се запише следното съобщение за грешка в регистрационния файл за грешки на SQL Server:

<дата><Time> spid # Error: 8646, тежест: 21; щат: 1. <Дата><час> SPID # не можете да намерите запис на индекс в ИД на индекс 3, на таблица 2102402659, в база данни "<DatabaseName>". Посоченият индекс е повреден или има проблем с текущия план за актуализиране. Изпълнение на DBCC CHECKDB или DBCC CHECKTABLE. Ако проблемът продължава, обърнете се към поддръжката на продукта. <дата><час> SPID # с помощта на "dbghelp. dll" версия "4.0.5" <Дата><време> SPID # * * Dump конец-SPID = 0; EC = 0x0000000BD70624C0<Дата><час> SPID # * * * стек дъмп, който се изпраща към Y:\MSSQL\MSSQL10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 дата><време> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <Дата><време> SPID # * <дата><време> SPID # *- SPID <време><SPID # *> Дата <час><SPID #> Дата <време><SPID # *>- за ":" ErrorAbort-индекс за корупция><0 Дата><време> SPID # *

Забележка Можете да приложите NOLOCK намек към таблиците източник в изявление. Не можете да прилагате подсказване на NOLOCK , за да насочвате таблици в изявление.

Причина

Този проблем възниква, защото намекът за NOLOCK кара заявката да чете неправилно стойности в таблицата, когато заявката прочита същите стойности няколко пъти.

Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.