Simptomi
Pretpostavimo da imate Microsoft SQL Server tabelu koja ima indekse ugrađene na sebi. Kada vršite upit u tabeli, SQL Server može da izvrši nedosledno dopunjavanje podataka za kolone CHAR i BINARNE KOLONE. Nedosledno ponašanje za vraćanje praznih ćelija na kraju kolona podataka CHAR i BINARY zavisi od sledećih uslova:
- Postavke ANSI_PADDING prilikom kreiranja kolona u SQL Server tabeli.
- Odluka da se skeniranje tabele ili traženje indeksa izvrši na kolonama.
Uzrok
U određenim scenarijima SQL Server može da izvrši optimizaciju koja mu omogućava da zaobiđe mnoge operacije radi bržeg korišćenja podataka. Problem se javlja zato što SQL Server ne prepoznaje da optimizacija ne može da se primeni u gorenavedenom scenariju.
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 "Znakovi" i "Varchar".
Napomena
Ako je ANSI_PADDING UKLJUČENO kada se kreira kolona char NULL, ponaša se isto kao kolona char NOT NULL: vrednosti su desno popunjene veličinom kolone. Ako je ANSI_PADDING ISKLJUČENO kada se kreira kolona char NULL, ponaša se kao kolona varchar sa ANSI_PADDING postavljenim OFF: prazne ćelije na kraju se odsecaju.
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
Kumulativna ispravka 8 za SQL Server 2014 SP2
Kumulativna ispravka 7 za SQL Server 2014 SP1
Osnovni podaci o kumulativnim ispravkama za SQL Server:
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Najnovija kumulativna ispravka za SQL Server 2017
Najnovija kumulativna ispravka za SQL Server 2016
Najnovija kumulativna ispravka za SQL Server 2014
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na"
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ispravki.