KB4055758 — IZLABOTS: nekonsekventa darbība beigu tukšumu atgriešanai CHAR un BINARY datu beigās programmā SQL Server

Attiecas uz
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

Pazīmes

Pieņemsim, ka jums ir Microsoft SQL Server tabula, kurā ir izveidots viens vai vairāki indeksi. Kad vaicājumu veicat tabulai, SQL Server var veikt nekonsekventu datu pildīšanu CHAR un BINARY kolonnām. Nekonsekventa darbība beigu tukšo vērtību atgriešanai CHAR un BINARY datu kolonnu beigās ir atkarīga no šādiem nosacījumiem:

  • ANSI_PADDING iestatījumi, kad SQL Server tabulā tiek izveidotas kolonnas.
  • Lēmums veikt tabulas skenēšanu vai indeksa meklēšanu kolonnās.

Iemesls

Noteiktos scenārijos SQL Server var veikt optimizāciju, kas ļauj apiet daudzas darbības ātrākai datu piegādei. Problēma rodas, jo SQL Server neatpazīst, ka iepriekš norādītajā scenārijā nevar izmantot optimizāciju.

Papildinformācija

Šāda SQL Server darbība neatbilst darbībai, kas ir dokumentēta šajā rakstā: Char un Varchar datu izmantošana.

Piezīme

Ja ANSI_PADDING ir ieslēgts, kad tiek izveidota char NULL kolonna, tā darbojas tāpat kā char NOT NULL kolonna: vērtības tiek labās puses piepildītas atbilstoši kolonnas lielumam. Ja, izveidojot kolonnu char NULL, ANSI_PADDING ir IZSLĒGTS, tas darbojas kā varchar kolonna ar ANSI_PADDING IZSLĒGTU: beigu tukšās vērtības tiek apcirstas.

Risinājums

Šī problēma ir novērsta šādos SQL Server kumulatīvajos atjauninājumos:

SQL Server 2017 2. kumulatīvais atjauninājums

SQL Server 2016 9. kumulatīvais atjauninājums

SQL Server 2016 SP1 6. kumulatīvais atjauninājums

SQL Server 2014 SP2 8. kumulatīvais atjauninājums

SQL Server 2014 SP1 7. kumulatīvais atjauninājums

Par SQL Server kumulatīvajiem atjauninājumiem:

Katrā jaunajā SQL Server kumulatīvajā atjauninājumā ir visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos SQL Server kumulatīvos atjauninājumus:

Jaunākais kumulatīvais atjauninājums SQL Server 2017

Jaunākais kumulatīvais atjauninājums SQL Server 2016

Jaunākais kumulatīvais atjauninājums SQL Server 2014

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz"

Atsauces

Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.