Применяется к
SQL 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 может выполнить неоднородное заполнение данных для столбцов 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

Последнее накопительное обновление для SQL Server 2016

Последнее накопительное обновление для SQL Server 2014

Статус

Корпорация Майкрософт подтвердила, что эта проблема связана с продуктами Майкрософт, которые перечислены в разделе "относится к"

Ссылки

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.