Симптоми
Да предположим, че изпълните процедурата, съхранена на курсора, sp_cursoropen заедно с аргумента SCROLLOPT в Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2012. Освен това, допуснем, че са изпълнени следните условия:
-
Аргументът scrollopt не е зададен като статичен или FAST_FORWARD.
-
Аргументът STMT съдържа заявка, която се изпълнява в изглед.
-
Изгледът извлича данни от таблица с помощта на свързан сървър.
-
Таблицата има съставен индекс, който съдържа 16 ключови колони.
В тази ситуация получавате следното съобщение за грешка:
Възникнала е тежка грешка в текущата команда.
Решение
Информация за сборна актуализация
Сборна актуализация 9 за SQL Server 2012
Корекцията за този проблем е издадена за първи път в сборна актуализация 9. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2012, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2867319 Кумулативна актуализация на пакета 9 за SQL Server 2012Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички актуални корекции и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2012 Fix. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2692828 SQL Server 2012 компилации, които са издадени след издаването на SQL Server 2012
Кумулативна актуализация 4 за SQL Server 2012 SP1
Корекцията за този проблем е издадена за първи път в кумулативната актуализация 4. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2012 SP1, щракнете върху следния номер на статия, за да отидете на статията в базата знания на Microsoft:
2833645 Кумулативна актуализация 4 за SQL Server 2012 SP1Забележка Като се има предвид, че компилациите са кумулативни, всяко ново издание за корекция съдържа всички спешни корекции и всички корекции на защитата, които са били включени с предишното издание за корекция на SQL Server 2012 SP1. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За повече информация щракнете върху номера на следната статия, за да отидете на статията в базата знания на Microsoft:
2772858 SQL Server 2012 изгражда, които са издадени след SQL Server 2012 Service Pack 1 е издадена
Сборна актуализация 6 за SQL Server 2008 R2 Service Pack 2
Корекцията за този проблем е издадена за първи път в сборна актуализация 6. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 R2 Service Pack 2, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2830140 Кумулативна актуализация на пакета 6 за SQL Server 2008 R2 Service Pack 2Забележка Тъй като компилациите са кумулативни, всяко ново съобщение за корекция съдържа всички поправки и всички корекции на защитата, които са включени в предишния SQL Server 2008 R2. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2730301 SQL Server 2008 R2 изгражда, които са издадени след SQL Server 2008 R2 Service Pack 2 е издадена
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".
Заобиколно решение
За да заобиколите проблема, използвайте по-малко от 16 ключови колони за композитния индекс.
Препратки
За повече информация относно съхранената процедура за курсора sp_cursoropenотидете на следния уеб сайт на MSDN:
Запознаване със съхранената процедура за курсора sp_cursoropen