Applies ToSQL 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

Симптоми

Приемете, че имате таблица на Microsoft SQL Server, в която са вградени един или повече индекси. Когато задавате заявка спрямо таблицата, SQL Server може да извърши несъгласувано подплънка на данни за чар и ДВОИЧНи колони. Несъгласуваното поведение при връщане на оставащи празни места в края на колоните с чар и ДВОИЧНи данни зависи от следните условия:

  • Настройките на ANSI_PADDING, когато се създават колони в таблицата на SQL Server.

  • Решението за извършване на сканиране към таблица или търсене на индекс върху колоните.

Причина

При определени сценарии SQL Server може да извърши оптимизация, която му позволява да заобиколи много операции за по-бързо доставяне на данни. Проблемът възниква, защото SQL Server не разпознава, че оптимизацията не може да се приложи за сценария по-горе.

Повече информация

Това поведение на SQL Server не съответства на поведението, което е документирано в следната статия: използване на данни за чар и VARCHAR.

Ако ANSI_PADDING е включен, когато се създава колона за НИЩОЖен знак, той се държи по същия начин, както и колоната, която не е NULL: стойностите са с отдясно подплатени до размера на колоната. Ако ANSI_PADDING е ИЗКЛЮЧЕНо, когато е създадена колона за НИЩОЖен знак, той се държи като колона на 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 2017

Най-новата сборна актуализация за SQL Server 2016

Най-новата сборна актуализация за SQL Server 2014

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за"

Препратки

Научете повече за терминологията, която Microsoft използва, за да опише софтуерни актуализации.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.