Microsoft distribuira Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) popravci kao jednu datoteku za preuzimanje. Budući da su popravci kumulativni, svako novo izdanje sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanom sustava SQL Server 2008 R2 Service Pack 2.
Simptomi
Možete primati pogrešne rezultate kada pokrenete upit u programu Microsoft SQL Server 2008 R2 SP2 ili u sustavu Microsoft SQL Server 2012 kada su točni sljedeći uvjeti:
-
Upit koristi klauzulu unakrsnog primjene iznad rezultat klauzule za cijeli spoj .
-
Podaci iz tablice osiguravaju se nazivanjem korisnički definirane funkcije za tablicu u skladu s uvjetom cijeli spoj .
-
Funkcija prihvaća naziv stupca kao parametar i vraća rezultate kao tablicu.
Na primjer, pokrenete upit koji nalikuje sljedeć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 Taj se problem ne pojavljuje u programu Microsoft SQL Server 2012.
Rješenje
Kumulativne informacije o ažuriranju
Kumulativno ažuriranje 7 za SQL Server 2012
Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 7. Dodatne informacije o dobivanju tog kumulativnog paketa za ažuriranje za SQL Server 2012 potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
2823247 Kumulativno ažuriranje paketa 7 za SQL Server 2012Napomena Budući da su grade kumulativne, svako novo izdanje ispravaka sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima sustava SQL Server 2012 Fix. Preporučujemo da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:
2692828 Verzije sustava SQL Server 2012 koje su objavljene nakon objavljivanja sustava SQL Server 2012
Kumulativno ažuriranje 3 za SQL Server 2012 SP1
Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 3. Dodatne informacije o dobivanju tog kumulativnog paketa za ažuriranje za SQL Server 2012 SP1 potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
2812412 Kumulativno ažuriranje paketa 3 za SQL Server 2012 Service Pack 1Napomena Budući da su grade kumulativne, svako novo izdanje sustava Fix sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima programa SQL Server 2012 SP1 za popravak. Preporučujemo da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:
2772858 Verzije sustava SQL Server 2012 koje su objavljene nakon objavljivanja sustava SQL Server 2012 Service Pack 1
Kumulativno ažuriranje 5 za SQL Server 2008 R2 SP2
Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 5. Dodatne informacije o dobivanju tog kumulativnog paketa za ažuriranje za SQL Server 2008 R2 SP 2 potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
2797460 Kumulativno ažuriranje paketa 5 za SQL Server 2008 R2 Service Pack 2Napomena Budući da su grade kumulativne, svako novo izdanje za ispravljanje sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima sustava SQL Server 2008 R2 SP 2. Preporučujemo da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:
2730301 Verzije sustava SQL Server 2008 R2 koje su objavljene nakon objavljivanja sustava SQL Server 2008 R2 Service Pack 2
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".
Zaobilazno rješenje
Da biste zaobišli taj problem, upotrijebite uvjet puni spajanje spajanja , a ne uvjet puni spoj . Na primjer, promijenite upit koji se spominje u odjeljku "simptomi" da bi upit bio sličan sljedećem:
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
Dodatne informacije
Dodatne informacije o korištenju uvjeta unakrsno primjena potražite na sljedećem web-mjestu Microsoft TechNet:
Općenite informacije o korištenju klauzule za unakrsnu primjenu