Microsoft izplata Microsoft SQL Server 2008 R2 2. servisa pakotnes (SP2) labojumus kā vienu lejupielādējamo failu. Tā kā labojumi ir kumulatīvi, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2008 R2 2. servisa pakotnes labošanas laidienā.
Simptomi
Izpildot vaicājumu programmā Microsoft SQL Server 2008 R2 SP2 vai Microsoft SQL Server 2012, var tikt parādīti nepareizi rezultāti:
-
Vaicājumam ir izmantota krusteniskās klauzulas klauzula, kas tiek lietota, ja tiek izmantots Pilns savienojums .
-
Tabulas dati tiek nodrošināti, zvanot uz tabulveida funkciju, kas tiek noteikta, izmantojot kārtulu pilnīga savienojuma izveide.
-
Funkcija kā parametru akceptē kolonnas nosaukumu un atgriež rezultātu kā tabulu.
Piemēram, palaižot vaicājumu, kas līdzīgs šim:
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
Piezīme. Šī problēma nav sastopama programmā Microsoft SQL Server 2012.
Risinājums
Kumulatīvās atjaunināšanas informācija
Kumulatīvais atjauninājums 7 SQL Server 2012
Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvajā atjaunināšanā 7. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvo atjaunināšanas pakotni SQL Server 2012, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2823247 Kumulatīvā atjauninājuma pakotne 7 sistēmai SQL Server 2012Piezīme. Tā kā būvējums ir kumulatīvs, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2012 labošanas laidienā. Iesakām apsvērt jaunāko labojumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2692828 SQL Server 2012 būvējumi, kas tika izlaisti pēc tam, kad tika izlaists SQL Server 2012
Kumulatīvais atjauninājums 3 SQL Server 2012 SP1
Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvajā atjauninājumā 3. Lai iegūtu papildinformāciju par to, kā iegūt SQL Server 2012 SP1 kumulatīvās atjaunināšanas pakotni, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2812412 Kumulatīvās atjaunināšanas pakotne 3 SQL Server 2012 1. servisa pakotneiPiezīme. Tā kā būvējums ir kumulatīvs, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2012 SP1 labošanas laidienā. Iesakām apsvērt jaunāko labojumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2772858 SQL Server 2012 būvējumi, kas tika izlaisti pēc tam, kad tika izlaists SQL Server 2012 1. servisa pakotne
Kumulatīvais atjauninājums 5 SQL Server 2008 R2 SP2
Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvajā atjaunināšanā 5. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvo atjaunināšanas pakotni SQL Server 2008 R2 SP 2, noklikšķiniet uz šī raksta numura, lai skatītu rakstu Microsoft zināšanu bāzē:
2797460 Kumulatīvās atjaunināšanas pakotne 5 SQL Server 2008 R2 2. servisa pakotneiPiezīme. Tā kā būvējums ir kumulatīvs, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2008 R2 SP 2 labošanas laidienā. Iesakām apsvērt jaunāko labojumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2730301 SQL Server 2008 R2 būvējumi, kas tika izlaisti pēc tam, kad tika izlaista SQL Server 2008 R2 2. servisa pakotne
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Risinājums
Lai atrisinātu šo problēmu, izmantojiet pilno klauzulu Join , nevis pilno klauzulu Join . Piemēram, jūs maināt vaicājumu, kas ir minēts sadaļā "Simptomi", uz kuru vaicājums līdzinās tālāk norādītajam.
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
Papildinformācija
Lai iegūtu papildinformāciju par to, kā izmantot kārtulu lietot , dodieties uz šo Microsoft TechNet tīmekļa vietni: