KB4055758 – RJEŠENJE: nedosljedno ponašanje za vraćanje završnih praznina na kraju podataka CHAR i BINARY u SQL Server

Primjenjuje se na
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

Simptomi

Pretpostavimo da imate tablicu sustava Microsoft SQL Server koja sadrži jedan ili više indeksa izgrađenih na njoj. Prilikom postavljanja upita u odnosu na tablicu SQL Server može provoditi nedosljedno popunjavanje podataka za stupce CHAR i BINARY. Nedosljedno ponašanje vraćanja završnih praznih vrijednosti na kraju podatkovnih stupaca CHAR i BINARY ovisi o sljedećim uvjetima:

  • Postavke ANSI_PADDING prilikom stvaranja stupaca u SQL Server tablici.
  • Odluka o izvođenju skeniranja tablice ili traženja indeksa na stupcima.

Uzrok

U određenim scenarijima SQL Server može provesti optimizaciju koja mu omogućuje zaobilaženje mnogih operacija radi brže isporuke podataka. Problem se pojavljuje jer SQL Server ne prepoznaje da se optimizacija ne može primijeniti za gore navedeni scenarij.

Dodatne informacije

Takvo ponašanje SQL Server nije u skladu s ponašanjem dokumentiranim u sljedećem članku: Korištenje podataka Char i Varchar.

Napomena

Ako je ANSI_PADDING uključen prilikom stvaranja stupca char NULL, ponaša se isto kao stupac char NOT NULL: vrijednosti se popunjavaju desno u odnosu na veličinu stupca. Ako je ANSI_PADDING isključen prilikom stvaranja stupca char NULL, ponaša se kao stupac varchar s ANSI_PADDING postavljenim OFF: završne praznine skraćuju se.

Rješenje

Taj je problem riješen u sljedećim kumulativnim ažuriranjima za SQL Server:

Kumulativno ažuriranje 2 za SQL Server 2017

Kumulativno ažuriranje 9 za SQL Server 2016

Kumulativno ažuriranje 6 za SQL Server 2016 SP1

Kumulativno ažuriranje 8 za SQL Server 2014 SP2

Kumulativno ažuriranje 7 za SQL Server 2014 SP1

O kumulativnim ažuriranjima za SQL Server:

Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:

Najnovije kumulativno ažuriranje za SQL Server 2017

Najnovije kumulativno ažuriranje za SQL Server 2016

Najnovije kumulativno ažuriranje za SQL Server 2014

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku "Odnosi se na"

Reference

Saznajte više o terminologiji koju Microsoft upotrebljava za opisivanje softverskih ažuriranja.