KB4469722 — ИСПРАВЛЕНИЕ. Внутренние сообщения об ошибках при обновлении системной таблицы надгробия FILESTREAM в SQL Server

Применяется к
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)

Проблема

Предположим, что у вас есть база данных с поддержкой FILESTREAM в экземпляре Microsoft SQL Server. Когда вы запускаете транзакцию и используете API .NET SqlFileStream для открытия файла filestream, задача может завершиться ошибкой и вызвать исключение из-за внешних факторов.

Если снова открыть файл с помощью SqlFileStream в рамках одной транзакции и фиксации, могут появись внутренние сообщения об ошибках, которые выглядят следующим образом:

Примечание

date time, spids, Unknown, Error: 5571<c/> Серьезность: 23<c/> State: 3.
date time, spids, Unknown, Internal FILESTREAM error: не удалось получить доступ к таблице сборки мусора.

При запуске dbcc checktable ("sys.filestream_tombstone_2073058421")может появилось следующее сообщение об ошибке:

Примечание

Msg 8951, Level 16, State 1, LineNumber

Ошибка таблицы: table dbcc checktable ('sys.filestream_tombstone_2073058421') ( IDNumber). Строка данных не содержит соответствующую строку индекса в индексе "FSTSNCIdx" (IDNumber). Возможные отсутствующие или недопустимые ключи для сопоставления строк индекса:

Решение

Исправление этой проблемы входит в следующие обновления для SQL Server:

Накопительный пакет обновления 13 для SQL Server 2017 г.

Накопительный пакет обновления 1 для SQL Server 2014 с пакетом обновления 3 (SP3)

Накопительный пакет обновления 15 для SQL Server 2014 с пакетом обновления 2 (SP2)

Сведения о сборках SQL Server

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

версии сборки SQL Server 2017 г.

версии сборки SQL Server 2014 г.

Временное решение

Чтобы обойти эту проблему, перестройте индекс базы данных с помощью команды DBCC CHECKTABLE .

Состояние

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

Ссылки

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