Simptomi
Iedomājieties šādu scenāriju:
-
Jums ir dators, kurā ir instalēts Microsoft SQL Server 2012.
-
Jums ir vaicājums, kurā ir paziņojuma par reģistru priekšraksts priekšrakstā Select un priekšraksts Group by priekšrakstā.
-
Divu gadījumu priekšraksti tiek novērtēti kā Null.
-
Jūs izpildāt vaicājumu.
Šajā scenārijā tiek parādīts šāds kļūdas ziņojums:
Msg 8120, Level 16, State 1, Line 3Column ' <kolonnas nosaukums> ' ir nederīgs sarakstā atlasīt, jo tas nav ietverts summēšanas funkcijā vai KLAUZULĀ Group by.
Piemēram, palaidiet šādu vaicājumu:create database testgouse testgocreate table tvt ( v1t binary(1) null)create table tln (ln numeric(5) not null)goselectcase when 1=2 then t1.col1else 10end,casewhen t1.col1 = 2 then t1.col2endfrom (select t2.v1t as col1, 10 as col2 from tvt t2) t1group by case when 1=2 then t1.col1else 10end,casewhen t1.col1 = 2 then t1.col2endgo Vaicājumā šis priekšraksts, kad 1 = 2, pēc tam T1. Kolonna1 cits 10 tiek novērtēts kā 10. Ja aizstāsit "10", izmantojot NULL, šī problēma rodas.Piezīme.Šī problēma nerodas, ja noņemat kādu no priekšrakstiem Select vai Group by priekšraksta.
Risinājums
Pēc labojuma lietošanas ir jāiespējo izsekošanas karodziņš, lai padarītu labojumfailu darbu. Lūdzu, sazinieties ar Microsoft atbalsta dienestu, ja jums ir nepieciešams lietot šo labojumu.
Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 6 SQL Server 2012 SP1 /en-us/help/2874879
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".