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:

Opšte informacije o korišćenju odredbe CROSS APPLY

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.