Симптоми
Да предположим, че имате таблица на Microsoft SQL Server, върху която са вградени един или повече индекси. Когато правите заявка към таблицата, SQL Server може да извърши несъгласувано допълване на данните за CHAR и BINARY колони. Несъгласуваното поведение за връщане на завършващи празни стойности в края на колоните с данни CHAR и BINARY зависи от следните условия:
- Настройките на ANSI_PADDING при създаване на колони в таблицата на SQL Server.
- Решението да се извърши сканиране на таблица или търсене на индекс на колоните.
Причина
При определени сценарии SQL Server може да извърши оптимизация, която му позволява да заобиколи много операции за по-бързо доставяне на данни. Проблемът възниква, защото SQL Server не разпознава, че оптимизацията не може да бъде приложена за горния сценарий.
Повече информация
Това поведение на SQL Server не съответства на поведението, което е документирано в следната статия: Използване на данни на Char и Varchar.
Забележка
Ако ANSI_PADDING е ВКЛЮЧЕНО, когато се създава колона с знак NULL, то се държи като колона с знак NOT NULL: стойностите се допълват отдясно до размера на колоната. Ако ANSI_PADDING е ИЗКЛ., когато се създава колона с знак NULL, то се държи като колона varchar с ANSI_PADDING зададено ИЗКЛ.: завършващите празни стойности се отрязват.
Решение
Този проблем е решен в следните кумулативни актуализации за SQL Server:
Сборна актуализация 2 за SQL Server 2017
Сборна актуализация 9 за SQL Server 2016
Сборна актуализация 6 за SQL Server 2016 SP1
Сборна актуализация 8 за SQL Server 2014 SP2
Сборна актуализация 7 за SQL Server 2014 SP1
За кумулативните актуализации за SQL Server:
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
Последна сборна актуализация за SQL Server 2017
Последна сборна актуализация за SQL Server 2016
Последна сборна актуализация за SQL Server 2014
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела "Важи за"
Справки
Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.