Znaki
Predpostavimo, da imate tabelo Microsoft SQL Server, na kateri je zgrajeno eno ali več indeksov. Ko poizvedujete v tabeli, lahko SQL Server izvede nedosledno odmijevanje podatkov za stolpca CHAR in BINAR. Nedosledno vedenje za vračanje končnih praznih mest na koncu podatkovnih stolpcev CHAR in BINARY je odvisno od teh pogojev:
- Nastavitve ANSI_PADDING, ko so stolpci ustvarjeni v tabeli SQL Server.
- Odločitev za izvedbo skeniranja tabele ali iskanja indeksa v stolpcih.
Vzrok
V nekaterih scenarijih lahko SQL Server izvede optimizacijo, ki mu omogoča, da zaobide številne operacije za hitrejšo dostavo podatkov. Do težave pride, ker SQL Server ne prepozna, da optimizacije ni mogoče uporabiti za zgornji scenarij.
Več informacij
To vedenje strežnika SQL Server ni skladno z vedenjem, ki je dokumentirano v tem članku: Uporaba podatkov Char in Varchar.
Opomba
Če je ANSI_PADDING vklopljen, ko je ustvarjen stolpec z oznako NULL, se obnaša enako kot stolpec z znakom NOT NULL: vrednosti so pravilno obmaknjene z velikostjo stolpca. Če je ANSI_PADDING IZKLOPLJEN, ko je ustvarjen stolpec z oznako NULL, se obnaša kot stolpec varchar z ANSI_PADDING nastavljeno OFF: končne praznine so prirezane.
Rešitev
Ta težava je odpravljena v teh zbirnih posodobitvah za SQL Server:
Zbirna posodobitev 2 za SQL Server 2017
Zbirna posodobitev 9 za SQL Server 2016
Zbirna posodobitev 6 za servisni paket SP1 za SQL Server 2016
Zbirna posodobitev 8 za servisni paket SP2 za SQL Server 2014
Zbirna posodobitev 7 za servisni paket SP1 za SQL Server 2014
O zbirnih posodobitvah za SQL Server:
Vsaka nova zbirna posodobitev za SQL Server vsebuje vse sprotne popravke 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 2017
Najnovejša zbirna posodobitev za SQL Server 2016
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.