Проблемы
Предположим, что у вас есть таблица Microsoft SQL Server, на которой построены один или несколько индексов. При выполнении запроса к таблице SQL Server может выполнить неоднородное заполнение данных для столбцов CHAR и BINARY. Неоднородное поведение, которое возвращает конечные пробелы в конце столбцов СИМВОЛЬных и ДВОИЧных данных, зависит от следующих условий:
-
Параметры ANSI_PADDING при создании столбцов в таблице SQL Server.
-
Решение о том, как выполнить либо сканирование таблицы, либо Поиск по индексу для столбцов.
Причина
В некоторых сценариях SQL Server может выполнять оптимизацию, позволяющую обойти многие операции для более быстрой доставки данных. Проблема возникает из-за того, что SQL Server не распознает, что оптимизация не может быть применена к описанному выше сценарию.
Дополнительная информация
Это поведение сервера SQL Server не соответствует поведению, описанному в следующей статье: использование данных char и varchar.
Если ANSI_PADDING используется при создании столбца NULL, он будет выполнять те же действия, что и столбец char NOT NULL: значения заполняются по правому краю в соответствии с размером столбца. Если ANSI_PADDING отключен при создании столбца NULL, он использует столбец VARCHAR с ANSI_PADDING Set OFF: конечные пробелы усекаются.
Решение
Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server.
Накопительное обновление 2 для SQL Server 2017
Накопительное обновление 9 для SQL Server 2016
Накопительное обновление 6 для SQL Server 2016 с пакетом обновления 1 (SP1)
Накопительное обновление 8 для SQL Server 2014 с пакетом обновления 2 (SP2)
Накопительное обновление 7 для SQL Server 2014 с пакетом обновления 1 (SP1)
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Последнее накопительное обновление для SQL Server 2017
Статус
Корпорация Майкрософт подтвердила, что эта проблема связана с продуктами Майкрософт, которые перечислены в разделе "относится к"
Ссылки
Ознакомьтесь с терминологией, которую корпорация Майкрософт использует для описания обновлений программного обеспечения.