Sümptomid
Oletagem, et teil on Microsoft SQL Server tabel, mis sisaldab vähemalt ühte indeksit. Kui esitate päringu tabeli vastu, võib SQL Server teha char- ja BINARY-veergude jaoks ebaühtlaseid andmetäidiseid. Andmeveergude CHAR ja BINARY lõpus lõputühikute tagastamise ebaühtlane käitumine sõltub järgmistest tingimustest.
- SQL Server tabelis veergude loomisel ANSI_PADDING sätted.
- Otsus veergudele kas tabeli skannida või indekseerida.
Põhjus
Teatud juhtudel võib SQL Server andmete kiiremaks edastamiseks läbi viia optimeerimise, mis võimaldab sellel mööduda paljudest toimingutest. Probleem ilmneb, sest SQL Server ei tunne, et optimeerimist ei saa rakendada ülaltoodud stsenaariumi.
Veel teavet
See SQL Server käitumine ei vasta järgmises artiklis kirjeldatud käitumisele: Char- ja Varchar-andmete kasutamine.
Märkus.
Kui ANSI_PADDING on veeru char NULL loomisel SISSE LÜLITATUD, käitub see sarnaselt veeruga char NOT NULL: väärtused on parempoolse klahvistikuga vastavalt veeru suurusele. Kui ANSI_PADDING on veeru char NULL loomisel VÄLJA LÜLITATUD, käitub see nagu muutuvtulpdiagrammi veerg, mille ANSI_PADDING on määratud OFF: lõputühikud kärbitakse.
Lahendus
See probleem on lahendatud järgmistes SQL Server koondvärskendustes.
koondvärskendus 2 SQL Server 2017 jaoks
koondvärskendus 9 SQL Server 2016 jaoks
SQL Server 2016 SP1 koondvärskendus 6
koondvärskendus 8 SQL Server 2014 SP2 jaoks
koondvärskendus 7 SQL Server 2014 SP1 jaoks
Teave SQL Server koondvärskenduste kohta.
Iga uus koondvärskendus SQL Server sisaldab kõiki kiirparandusi ja kõiki turbeparandusi, mis olid kaasatud eelmise koondvärskenduse. Vaadake uusimaid SQL Server koondvärskendusi.
Uusim koondvärskendus SQL Server 2017 jaoks
Uusim koondvärskendus SQL Server 2016 jaoks
Uusim koondvärskendus SQL Server 2014 jaoks
Olek
Microsoft on kinnitanud, et see on probleem jaotises "Kehtib järgmiste jaoks" loetletud Microsofti toodetes.
Viited
Lisateave Microsofti tarkvaravärskenduste terminoloogia kohta.