KB3098529 — исправление: Сбой подтверждения при изменении типа столбца в SQL Server 2014

Проблемы

Предположим, что у вас есть таблица, в которой есть кластеризованный индекс columnstore в Microsoft SQL Server 2014. Вы запускаете запрос DDL для таблицы, чтобы изменить тип данных существующего столбца. Например, вы можете изменить тип данных Column_1 Table_1 с VARCHAR (499) на NVARCHAR (500), выполнив следующую команду:

ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL

В этой ситуации возникают множественные отказы утверждения, и появляется следующее сообщение об ошибке:

Расположение: <путь к файлу> \Xmcolenc.inl: 413Expression: PF_CURRENT_STATUS = = PFS_OK (в XMColumnEncoder<неподписанный char *>:: EncodeValueForSecondary) SPID: <SPID>описание: <идентификатора процесса>Description. 0x0Location: 0 (в \Xmerror.cpp) SPID: <ный путь к файлу> SPID идентификатор процесса.

Кроме того, в журнале ошибок SQL Server генерируется несколько файлов дампа памяти, и в нем регистрируются различные сообщения об ошибках, аналогичные указанным ниже.

<Дата и время> SPID<ID> * * * копируется дамп стека <имя диска>: \Program Files\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<дата> SPID<ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <Дата время> SPID<ID> * <Дата время> SPID<ID> * начало дампа стека: <Дата время> SPID<ID> * <дата время> идентификатор spid<идентификатор><Дата <Дата и время> ID SPID<ID> * <дата время> spid<ID> * расположение: <путь к файлу> \xmcolenc.inl: 413<Дата время> SPID<ID> * выражение: PF_CURRENT_STATUS = = PFS_OK<Дата время> SPID<ID> * (в XMColumnEncoder<unsigned char *>:: EncodeValueForSecondary) <Дата время> SPID<ID> * SPID: 60<Дата время> SPID : 3680<Дата время> SPID<ID> * описание: HR: 0x0<Дата время> SPID<ID> * <Дата время> SPID<ID> * вход в буфер 136 байт-<Дата время> SPID<ID> * ALTER TABLE table_1 изменить столбец Col1 nvarchar (500) не имеет значения NULL;

Решение

После применения этого исправления может появиться следующее сообщение об ошибке при выполнении запроса DDL.

Инструкция ALTER TABLE завершилась сбоем, так как во вспомогательном словаре достигнуто ограничение максимального размера. Попробуйте удалить индекс columnstore, изменить столбец и создать новый индекс columnstore.

Это исправление также предотвращает создание файлов дампа памяти в журнале ошибок SQL Server. Эта проблема впервые устранена в следующих накопительных обновлениях SQL Server:

Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Мы рекомендуем вам загрузить и установить последние накопительные обновления для SQL Server.

Статус

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

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

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?

Что повлияло на вашу оценку?

Добавите что-нибудь? Это необязательно

Спасибо за ваш отзыв!

×