Znaki
Denimo, da imate poizvedbo, ki izvaja nekatere operacije niza, na primer spojitev, v stolpcih CHAR ali VARCHAR v strežnikih Microsoft SQL Server 2014, 2016 in 2017. Oglejte si ta scenarij:
- Stolpce spojite z različnimi zbiranji, ki so jim dodeljena.
- Ta primerjanja so medsebojno nezdružljiva. Poskušate na primer spojiti stolpec, ki je zbran kot Latin1_General_CI_AI z Latin1_General_BIN.
- Končni rezultat spojitve je dodeljen določenemu primerjanju (vključno z »database_default«) v okviru reševanja spora pri primerjanju.
V tem primeru lahko SQL Server vrne izjavo o maloprodaji z navedbo »Neveljavna primerjava zaradi NI ZBIRANJA«, morda pa boste prejeli sporočila o napaki, podobna temu:
Opomba
Location: typinfo.cpp:LineNumber
Izraz: false
SPID: SPID
ID procesa: ID procesa
Opis: Primerjava ni veljavna zaradi NI ZBIRANJA.msg 3624, raven 20, stanje 1, številka vrstice
Preverjanje uveljavljanja sistema ni uspelo. Podrobnosti najdete v dnevniku napak strežnika SQL Server. Napako pri izjavljanju običajno povzroči napaka programske opreme ali poškodbe podatkov. Če želite poiskati poškodbe zbirke podatkov, zaženite DBCC CHECKDB. Če ste se med nastavitvijo strinjali s pošiljanjem izvozov Microsoftu, bo Microsoftu poslan mini izvoz. Microsoft lahko na voljo posodobitev v najnovejšem servisnem paketu ali v obliki sprotnega popravka tehnične podpore.msg 596, Level 21, State 1, line Number
Izvajanja ni mogoče nadaljevati, ker je seja v stanju »kill state«.msg 0, level 20, state 0, line numberNumber
V trenutnem ukazu je prišlo do resne napake. Morebitne rezultate je treba zavreči.
Vzrok
Med stopnjo optimizacije poizvedbe poskuša SQL Server izračunati kardinalnost vmesnih rezultatov različnih stopenj poizvedbe, kot je združevanje. Ker se spor pri zbiranju razreši na samem koncu, optimizator poizvedbe morda tega ne pozna in poskuša izračunati kardinalnost spajanja na vnosu s spornim zbiranjem.
Rešitev
Ta težava je odpravljena v naslednjih zbirnih posodobitvah za SQL Server:
Zbirna posodobitev 8 za SQL Server 2016 SP1
Zbirna posodobitev 4 za SQL Server 2017
Zbirna posodobitev 9 za SQL Server 2014 SP2
O zbirnih posodobitvah za SQL Server:
Vsaka nova zbirna posodobitev za SQL Server vsebuje vse sprotne in varnostne popravke, ki so bili vključeni v prejšnjo zbirno posodobitev. Oglejte si najnovejše zbirne posodobitve za SQL Server:
Najnovejša zbirna posodobitev za SQL Server 2016
Najnovejša zbirna posodobitev za SQL Server 2017
Najnovejša zbirna posodobitev za SQL Server 2014
Stanje
Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.
Sklici
Preberite več o terminologiji, ki jo Microsoft uporablja za opisovanje posodobitev programske opreme.