Microsoft разпространява корекциите на Microsoft SQL Server 2008 като един файл за изтегляне. Тъй като корекциите са кумулативни, всяко ново издание съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2008.
Симптоми
Обмислете сценария, описан по-долу.
- Имате заявка, която използва функцията ROW_NUMBER заедно с ляво външно съединение в Microsoft SQL Server 2008.
- Можете да създадете команда SELECT, която използва заявката като подзаявка и която връща уникални редове с помощта на ключовата дума DISTINCT.
- Изпълнявате тази команда SELECT.
В този случай може да получите грешен резултат. Лявото външно съединение е неправилно игнорирано.
Забележка За повече информация как да възпроизвеждате този проблем, вижте подраздела "Стъпки за възпроизвеждане на този проблем" в раздела "Повече информация".
Решение
Кумулативна информация за актуализацията
SQL Server 2008 R2
Корекцията за този проблем е издадена за първи път в кумулативна актуализация 6. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2008 R2, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2489376 Сборен пакет за актуализация 6 за SQL Server 2008 R2 Забележка: Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2008 R2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
981356 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2
SQL Server 2008 Service Pack 1
Корекцията за този проблем е издадена за първи път в сборна актуализация 11 за SQL Server 2008 Service Pack 1.
За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2413738 Сборен пакет за актуализация 11 за SQL Server 2008 Service Pack 1Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
970365 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 1 Актуалните корекции на Microsoft SQL Server 2008 се създават за определени сервизни пакети за SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 1 към инсталация на SQL Server 2008 Service Pack 1. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.
SQL Server 2008 Service Pack 2
Корекцията за този проблем е издадена за първи път в сборна актуализация 2 за SQL Server 2008 Service Pack 2. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2467239 Сборен пакет за актуализация 2 за SQL Server 2008 Service Pack 2Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
2402659 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 2 Горещи корекции на Microsoft SQL Server 2008 се създават за определени сервизни пакети за SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 2 към инсталация на SQL Server 2008 Service Pack 2. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Повече информация
Стъпки за възпроизвеждане на този проблем
Изпълнете командите по-долу. Тези команди създават две таблици и вмъкват данни в таблиците.
create table A (a1 int) create table B (b1 int) insert into A values(1) insert into B values(1) insert into B values(1)Изпълнете следната команда: Тази команда използва функцията ROW_NUMBER заедно с ляво външно съединение.
select a1, row_number() over (partition by a1 order by a1) as a3 from A left join B ON A.a1 = B.b1Изпълнете следната команда: Тази команда използва заявката в стъпка 2 като подзаявка:
select distinct a1, a3 from ( select a1, row_number() over (partition by a1 order by a1) as a3 from A left join B ON A.a1 = B.b1 ) as x
Забележка: Заявката в стъпка 3 връща неправилен резултат, когато възникне този проблем.
Справки
За повече информация относно функцията ROW_NUMBER и външните съединения посетете следните уеб сайтове на Microsoft Developer Network (MSDN):
За повече информация относно модела на постъпково обслужване за SQL Server щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
935897 От екипа на SQL Server се предлага модел на постъпково обслужване, който да предоставя актуални корекции за съобщени проблеми
За допълнителна информация относно схемата за именуване на актуализациите на SQL Server щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:
822499 Нова схема за именуване на пакетите за актуализация на софтуера на Microsoft SQL Server За повече информация относно терминологията за софтуерни актуализации щракнете върху следния номер на статия в базата знания на Microsoft:
824684 Описание на стандартната терминология, която се използва за описание на софтуерните актуализации на Microsoft