Microsoft distribuira ispravke za Microsoft SQL Server 2008 kao jednu datoteku koja se može preuzeti. Pošto su ispravke kumulativne, svako novo izdanje sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodno izdanje ispravki za SQL Server 2008.
Simptomi
Razmotrite sledeći scenario.
-
Imate upit koji koristi funkciju ROW_NUMBER zajedno sa levim spoljnim spojem u sistemu Microsoft SQL Server 2008.
-
Kreirate izvod SELECT koji koristi upit kao podupit i koji vraća jedinstvene redove pomoću ključne reči DISTINCT.
-
Pokrenuli ste ovu SELECT izjavu.
U ovom scenariju, možete dobiti netačan rezultat. Levi spoj se nepravilno zanemaruje.Napomena Više informacija o reprodukciji ovog problema potražite u podsekciji "Koraci za reprodukciju ovog problema" u odeljku "Više informacija".
Rešenje
Kumulativne informacije o ažuriranju
SQL Server 2008 R2
Ispravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 6. Za više informacija o nabavljanju ovog paketa kumulativnih ispravki za SQL Server 2008 R2 kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2489376 Kumulativni paket ispravki 6 za SQL Server 2008 R2 Napomena Pošto su verzije kumulativne, svako novo izdanje ispravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodno izdanje SQL Server 2008 R2 ispravke. Preporučujemo da razmislite o primeni najnovijeg izdanja ispravke koje sadrži ovu hitnu ispravku. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
981356 SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 was released
SQL Server 2008 servisni paket 1
Ispravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 11 za SQL Server 2008 servisni paket 1. Za više informacija o ovom paketu kumulativnih ispravki kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2413738 Kumulativni paket ispravki 11 za SQL Server 2008 servisni paket 1Napomena Pošto su verzije kumulativne, svako novo izdanje ispravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodno izdanje ispravke za SQL Server 2008. Microsoft preporučuje da razmislite o primeni najnovijeg izdanja ispravke koje sadrži ovu hitnu ispravku. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
970365 SQL Server 2008 builds koji su objavljeni nakon što je SQL Server 2008 servisni paket 1 objavljen Hitne ispravke za Microsoft SQL Server 2008 kreirane su za određene SQL Server servisne pakete. Morate primeniti hitnu ispravku za SQL Server 2008 servisni paket 1 na instalaciju SQL Server 2008 servisnog paketa 1. Podrazumevano, sve hitne ispravke koje su obezbeđene u SQL Server servisnom paketu uključene su u sledeći SQL Server servisni paket.
SQL Server 2008 servisni paket 2
Ispravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 2 za SQL Server 2008 servisni paket 2. Za više informacija o ovom paketu kumulativnih ispravki kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2467239 Kumulativni paket ispravki 2 za SQL Server 2008 servisni paket 2Napomena Pošto su verzije kumulativne, svako novo izdanje ispravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodno izdanje ispravke za SQL Server 2008. Microsoft preporučuje da razmislite o primeni najnovijeg izdanja ispravke koje sadrži ovu hitnu ispravku. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2402659 SQL Server 2008 builds koji su objavljeni nakon što je SQL Server 2008 servisni paket 2 objavljen Hitne ispravke za Microsoft SQL Server 2008 kreirane su za određene SQL Server servisne pakete. Morate primeniti hitnu ispravku za SQL Server 2008 servisni paket 2 na instalaciju SQL Server 2008 servisnog paketa 2. Podrazumevano, sve hitne ispravke koje su obezbeđene u SQL Server servisnom paketu uključene su u sledeći SQL Server servisni paket.
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".
Više informacija
Koraci za reprodukodu ovog problema
-
Pokrenite sledeće izjave. Ove izjave kreiraju dve tabele i umeću neke podatke u tabele.
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)
-
Pokrenite sledeću izjavu. Ova izjava koristi ROW_NUMBER funkciju zajedno sa levim spojem.
select a1, row_number() over (partition by a1 order by a1) as a3from Aleft join B ON A.a1 = B.b1
-
Pokrenite sledeću izjavu. Ova izjava koristi upit u koraku 2 kao podupit:
select distinct a1, a3from ( 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
Napomena Upit u koraku 3 daje netačan rezultat kada dođe do ovog problema.
Reference
Za više informacija o ROW_NUMBER funkcije i pridruživanja posetite sledeće Microsoft Developer Network (MSDN) Veb lokacije:
Za više informacija o postepenom modelu servisiranja za SQL Server kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
935897 Sql Server tim je dostupan u SQL Server timu za isporuku hitnih ispravki za prijavljene problemeZa više informacija o šemi imenovanja za ispravke sistema SQL Server kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
822499Nova šema imenovanja za pakete softverskih ispravki za Microsoft SQL ServerZa više informacija o terminologiji softverskih ispravki kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
824684 Opis standardne terminologije koja se koristi za opisivanje Microsoft softverskih ispravki