Simptome
Să presupunem că aveți o interogare care efectuează câteva operații de șir de exemplu, concatenare, în coloanele CHAR sau VARCHAR din Microsoft SQL Server 2014, 2016 și 2017. Luați în considerare următorul scenariu:
-
Concatenați coloane cu diferite asamblări care le sunt atribuite.
-
Acele asamblări sunt incompatibile unul cu altul. De exemplu, încercați să concatenați o coloană care este asamblată ca Latin1_General_CI_AI cu Latin1_General_BIN.
-
Rezultatul final al concatenarii este atribuit unei asamblări specifice (inclusiv "database_default") ca o problemă a rezoluției conflictului de asamblare.
În acest scenariu, SQL Server poate returna o afirmație cu amănuntul care afirmă "comparație nevalidă din cauza fără asamblare" și este posibil să primiți câteva mesaje de eroare care seamănă cu următoarele:
Locație: typinfo. CPP:LineNumber Expresie: false SPID: SPID ID proces: ProcessID Descriere: comparație nevalidă din cauza fără asamblare.
MSG 3624, nivel 20, stat 1, linie LineNumber O verificare a susținerii sistemului nu a reușit. Verificați jurnalul de erori SQL Server pentru detalii. De obicei, o eroare de afirmație este cauzată de un defect de software sau de o deteriorare a datelor. Pentru a căuta corupția bazei de date, luați în considerare executarea DBCC CHECKDB. Dacă ați fost de acord să trimiteți gropi la Microsoft în timpul instalării, va fi trimis un mini dump către Microsoft. Este posibil ca o actualizare să fie disponibilă de la Microsoft în cel mai recent pachet Service Pack sau într-o remediere rapidă din asistența tehnică.
MSG 596, nivel 21, stat 1, LineNumber linie Nu se poate continua execuția, deoarece sesiunea este în starea Kill.
MSG 0, nivel 20, stare 0, linie LineNumber
S-a produs o eroare severă la comanda curentă. Rezultatele, dacă este cazul, ar trebui eliminate.
Cauză
În timpul etapei de optimizare a interogării, SQL Server încearcă să calculeze cardinalitatea pentru rezultatele intermediare ale diferitelor etape ale interogării, de exemplu, concatenarea. Deoarece rezoluția conflictului de asamblare are loc chiar la sfârșit, instrumentul de optimizare a interogărilor poate să nu fie conștient de acesta și să încerce să efectueze calculul cardinalității de concatenare la o intrare cu asamblare în conflict.
Rezolvare
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
Actualizarea cumulativă 8 pentru SQL Server 2016 SP1
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Cea mai recentă actualizare cumulativă pentru SQL Server 2016
Cea mai recentă actualizare cumulativă pentru SQL Server 2017
Cea mai recentă actualizare cumulativă pentru SQL Server 2014
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologiape care o utilizează Microsoft pentru a descrie actualizările de software.