Симптоми
Да предположим, че изпълнявате заявка, която съдържа оператор UNION, използвайки план за паралелни заявки в Microsoft SQL Server 2008 R2, SQL Server 2012 или SQL Server 2014. Агрегатният оператор на поток може да произведе дублирани редове, когато са налице следните условия:
- Заявката използва константа или колона с фиксирана стойност (например подразбира се от предикат, като колона = <константа> , когато колоната е избрана).
- SQL Server използва план за изпълнение на паралелни заявки, който включва агрегатен оператор за поток, който агрегира по константа или фиксирана стойност (този агрегатен оператор на поток може да бъде въведен в заявки, които съдържат оператор UNION, за да се получат различни резултати).
Решение
SQL Server 2012
За SQL Server 2012, за да разрешите този проблем, приложете SQL Server 2012 Service Pack 2. За повече информация за грешките, които са коригирани в SQL Server 2012 SP2, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2958429 Грешки, които са коригирани в SQL Server 2012 Service Pack 2
Проблемът е коригиран за първи път в следващата кумулативна актуализация на SQL Server.
Сборна актуализация 13 за SQL Server 2008 R2 SP2 /en-us/help/2967540
Сборна актуализация 2 за SQL Server 2014 г. /bg-bg/help/2967546
Сборна актуализация 10 за SQL Server 2012 SP1 /en-us/help/2954099
За кумулативните актуализации за SQL Server
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
- Последна кумулативна актуализация за SQL Server 2008 R2 SP2
- Последна сборна актуализация за SQL Server 2014
- Последна сборна актуализация за SQL Server 2012 SP1
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.