Симптоми
Обмислете следния сценарий:
-
Имате база данни, която има изолация на снимка или прочитане на ниво на изолация, извършено в Microsoft SQL Server 2012 или SQL Server 2014.
-
Базата данни съдържа непразна таблица, която има индекс с множество колони с клъстери. Водещият ключ на индекса с клъстери е зададен като невалиден.
-
Можете да започнете транзакция и да добавите колона в таблицата. Стойността на тази колона се актуализира.
-
Можете да промените водещите ключове на индекса с клъстери, за да разрешите НУЛЕВа стойност.
-
Вмъквате редове с НУЛЕВи стойности за водещите ключове на индекса с клъстери и след това прекратявате транзакцията.
В този случай връщането на базата данни води до подозрителност и само "поправка" с DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS Command. Освен това може да получите следното съобщение за грешка:
MSG 3316, ниво 21, щат 2, линия 135 по време на отмяната на операция за влизане в база данни "%. * ls", Възникна грешка в ИД на регистрационния файл% S_LSN. Редът не е намерен. Възстановяване на базата данни от пълно архивиране или поправка на базата данни.
Решение
Информация за сервизния пакет за SQL Server 2014
За да отстраните този проблем, Получете Service Pack 1 за SQL Server 2014.
За повече информация относно SQL Server 2014 Service Pack 1 (SP1) вижте грешки, които са коригирани в SQL Server 2014 Service Pack 1.
Информация за сервизния пакет за SQL Server 2012
За да отстраните този проблем, получете най-новия сервизен пакет за Microsoft SQL Server 2012. За повече информация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2755533 Как да получите най-новия сервизен пакет за SQL Server 2012
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".