Simptomi
Pretpostavimo da na njemu imate ugrađenu Microsoft SQL Server tabelu sa jednim ili više indeksa. Kada izvršite upit u odnosu na tabelu, SQL Server može da izvrši nedosledno uloške podataka za kolone CHAR i BINARY. Nedosledno ponašanje za vraćanje praznina na kraju kolona podataka CHAR i BINARY zavisi od sledećih uslova:
-
Postavke sistema ANSI_PADDING kolone u SQL Server tabeli.
-
Odluka da se izvrši skeniranje tabele ili traženje indeksa u kolonama.
Uzrok
U određenim slučajevima, SQL Server može da izvrši optimizaciju koja mu omogućava da zaobiđe mnoge operacije radi bržeg dostavljanja podataka. Do problema dolazi zato što SQL Server ne prepoznaje da se optimizacija ne može primeniti za gore navedeni scenario.
Više informacija
Ovo ponašanje sistema SQL Server nije u skladu sa ponašanjem koje je dokumentovano u sledećem članku: korišćenje podataka char i varchar.
Ako ANSI_PADDING je ON kada se kreira kolona CHAR NULL, ona se ponaša isto kao kolona "ŠAR NOT NULL": vrednosti su desno tapacirane na veličinu kolone. Ako ANSI_PADDING isključena kada se kreira kolona char NULL, ona se ponaša kao varchar kolona sa ANSI_PADDING isključenom: praznići na tragu su odsečeni.
Rešenje
Ovaj problem je rešen u sledećim kumulativnim ispravkama za SQL Server:
Kumulativna ispravka 2 za SQL Server 2017
Kumulativna ispravka 9 za SQL Server 2016
Kumulativna ispravka 6 za SQL Server 2016 SP1
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Najnovija kumulativna ispravka za SQL Server 2017
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na"
Reference
Saznajte više o terminologijikoju Microsoft koristi za opisivanje softverskih ispravki.