Применяется к
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Web SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

Проблемы

При выполнении запроса, содержащего данные больших объектов (LOB) для загрузки в переменную Transact-SQL в Microsoft SQL Server 2008, Microsoft SQL Server 2012 или Microsoft SQL Server 2008 R2, возникает повреждение данных. Например, чтобы скопировать данные XML из столбца базы данных в XML-переменную, выполните следующий запрос: Declare @OUTXML as XMLSELECT @OUTXML = DataXml FROM Table_1 WHERE id=1 В этой ситуации инструкция SELECT выполняется, когда другие потоки пытаются обновить один и тот же столбец XML. Такое поведение может привести к повреждению данных. Кроме того, при выполнении операции чтения и записи с поврежденным XML-столбцом появляется одно из следующих сообщений об ошибке:

  • Тип данных XML поврежден.

  • Обнаружен неожиданный конец файла.

Примечания.

  • Как правило, эта проблема возникает при выполнении высокоскоростных операций загрузки.

  • При использовании агента чтения журнала для чтения поврежденных данных XML из таблицы, которая является частью списка статей публикации для репликации транзакций, появляется следующее сообщение об ошибке:

    Тип данных XML поврежден. (Источник: MSSQLServer; номер ошибки: 6611)

Причина

Эта проблема возникает из-за того, что блокировка столбца данных LOB освобождается до тех пор, пока данные LOB не будут скопированы из столбца базы данных в переменную типа LOB. Любой параллельный запрос может обновлять те же данные LOB перед завершением процесса копирования во время копирования. Таким образом, возникает повреждение данных.

Решение

Сведения о накопительном пакете обновления

Накопительное обновление 7 для SQL Server 2012

Исправление для этой проблемы впервые выпущено в накопительном обновлении 7. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2012, щелкните следующий номер статьи базы знаний Майкрософт:

2823247 Накопительный пакет обновления 7 для SQL Server 2012Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2012. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2692828 Сборки SQL Server 2012, выпущенные после выпуска SQL Server 2012

Накопительное обновление 12 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 12. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:

2828727 Накопительный пакет обновления 12 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Накопительное обновление 10 для SQL Server 2008 с пакетом обновления 3 (SP3)

Исправление для этой проблемы впервые было выпущено в накопительном обновлении 10. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 с пакетом обновления 3 (SP3), щелкните следующий номер статьи базы знаний Майкрософт:

2814783 Накопительный пакет обновления 10 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 с пакетом обновления 3 (SP3). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008

Накопительное обновление 5 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 5. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 S2008 R2 с пакетом обновления 2 (SP2), щелкните следующий номер статьи базы знаний Майкрософт:

2797460 Накопительный пакет обновления 5 для SQL Server 2008 R2 S2008 R2 SP2Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в пакет исправлений для S2008 для 2008 R2 для Microsoft SQL Server, выпущенный ранее. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Статус

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

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

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

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