Simptome
Să presupunem că aveți un tabel Microsoft SQL Server care are unul sau mai multe indexuri construite pe baza sa. Atunci când interogați tabelul, SQL Server poate efectua spațiere inconsistentă a datelor pentru coloanele CHAR și BINARY. Comportamentul inconsistent pentru returnarea valorilor goale de la sfârșitul coloanelor de date CHAR și BINARY depinde de următoarele condiții:
- Setările ANSI_PADDING când se creează coloane în tabelul SQL Server.
- Decizia de a efectua o scanare de tabel sau o căutare de index în coloane.
Cauză
În anumite scenarii, SQL Server poate efectua o optimizare care îi permite să ignore multe operațiuni pentru livrarea mai rapidă a datelor. Problema apare deoarece SQL Server nu recunoaște că optimizarea nu poate fi aplicată pentru scenariul de mai sus.
Mai multe informații
Acest comportament al SQL Server nu respectă comportamentul prezentat în următorul articol: Utilizarea datelor Char și Varchar.
Notă
Dacă ANSI_PADDING este ACTIVATĂ atunci când se creează o coloană char NULL, aceasta se comportă la fel ca o coloană char NOT NULL: valorile sunt completate la dreapta la dimensiunea coloanei. Dacă ANSI_PADDING este DEZACTIVATĂ atunci când este creată o coloană char NULL, ea se comportă ca o coloană varchar cu ANSI_PADDING setată OFF: spațiile goale de la sfârșitul sunt trunchiate.
Rezolvare
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
Actualizarea cumulativă 2 pentru SQL Server 2017
Actualizarea cumulativă 9 pentru SQL Server 2016
Actualizarea cumulativă 6 pentru SQL Server 2016 SP1
Actualizarea cumulativă 8 pentru SQL Server 2014 SP2
Actualizarea cumulativă 7 pentru SQL Server 2014 SP1
Despre actualizările cumulative pentru SQL Server:
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Cea mai recentă actualizare cumulativă pentru SQL Server 2017
Cea mai recentă actualizare cumulativă pentru SQL Server 2016
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 terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.