KB4055758 - FIX: ebaühtlane käitumine lõputühikute tagastamiseks CHAR ja BINARY-andmete lõpus SQL Server

Rakenduskoht
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

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.