Microsoft distribuira ispravke za Microsoft SQL Server 2008 R2 servisni paket 2 (SP2) 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 uključene u prethodno izdanje ispravke za SQL Server 2008 R2 servisni paket 2.
Simptomi
Možete dobiti netačne rezultate kada pokrenete upit u microsoft SQL Server 2008 R2 SP2 ili Microsoft SQL Server 2012 kada su ispunjeni sledeći uslovi:
-
Upit koristi odredbu CROSS APPLY zbog rezultata odredbe FULL JOIN.
-
Podaci tabele se obezbeđuju pozivanjem korisnički definisane funkcije u tabeli u odredbi FULL JOIN.
-
Funkcija prihvata ime kolone kao parametar i daje rezultate kao tabelu.
Na primer, pokrenete upit koji je sliиan sledeжem:
SELECT * FROM tablename CROSS APPLY ( SELECT * FROM (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 FULL JOIN (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 ON s1.nodeName = s2.nodeName ) s
Napomena Do ovog problema ne dolazi u sistemu Microsoft SQL Server 2012.
Rešenje
Kumulativne informacije o ažuriranju
Kumulativna ispravka 7 za SQL Server 2012
Ispravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 7. Za više informacija o nabavljanju ovog paketa kumulativnih ispravki za SQL Server 2012 kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2823247 Kumulativni paket ispravki 7 za SQL Server 2012Napomena 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 ispravki za SQL Server 2012. 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:
2692828 SQL Server 2012 builds koji su objavljeni nakon što je SQL Server 2012 objavljen
Kumulativna ispravka 3 za SQL Server 2012 SP1
Ispravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 3. Za više informacija o nabavljanju ovog paketa kumulativnih ispravki za SQL Server 2012 SP1 kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2812412 Kumulativni paket ispravki 3 za SQL Server 2012 servisni paket 1Napomena Pošto su verzije kumulativne, svako novo izdanje ispravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodno izdanje ispravke za SQL Server 2012 SP1. 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:
2772858 SQL Server 2012 builds koji je objavljen nakon što je SQL Server 2012 servisni paket 1 objavljen
Kumulativna ispravka 5 za SQL Server 2008 R2 SP2
Ispravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 5. Za više informacija o nabavljanju ovog paketa kumulativnih ispravki za SQL Server 2008 R2 SP 2 kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2797460 Kumulativni paket ispravki 5 za SQL Server 2008 R2 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 ispravki za SQL Server 2008 R2 SP 2. 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:
2730301 SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 Service Pack 2 was released
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".
Rešenje
Da biste zaobišli ovaj problem, koristite odredbu FULL MERGE JOIN umesto odredbe FULL JOIN. Na primer, upit koji je pomenut u odeljku "Simptomi" menjate u sledeći:
SELECT * FROM tablename CROSS APPLY ( SELECT * FROM (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 FULL MERGE JOIN (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 ON s1.nodeName = s2.nodeName ) s
Više informacija
Za više informacija o korišćenju odredbe CROSS APPLY posetite sledeću Microsoft TechNet Web lokaciju: