Проблемы
Рассмотрим следующий сценарий.
-
У вас есть база данных, которая использует BULK_LOGGED или простую модель восстановления в Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 или SQL Server 2014.
-
Вы включаете параметр " установить XACT_ABORT ".
-
Вы пытаетесь выполнить несколько инструкций массовой вставки в одной распределенной транзакции.
В этом случае инструкция массовой вставки может завершиться ошибкой, и появляется следующее сообщение об ошибке:
Расположение: PAGEREF. cpp: 913Expression: IS_OFF (BUF_MINLOGGED, m_buf->bstat) | | pageModifyType! = PageModifyType_Contents | | GetPagePtr ()->IsTextPage () SPID: 56Process ID: 2136Msg 3624, Level 20, состояние 1, строка 7A проверка утверждения системы не пройдена. Подробности см. в журнале ошибок SQL Server. Как правило, сбой утверждения вызывается из-за ошибки программного обеспечения или повреждения данных. Чтобы проверить, не повреждена ли база данных, попробуйте выполнить команду DBCC CHECKDB. Если вы согласились отправлять дампы в Microsoft во время установки, мини-дамп будет отправлен в корпорацию Майкрософт. Обновление может быть доступно в Microsoft в новейшем пакете обновления или в QFE от службы технической поддержки. сообщение 0, уровень 20, состояние 0, строка 0. в текущей команде произошла серьезная ошибка. Результаты, если таковые имеются, должны быть удалены.
Кроме того, в папке журнала SQL Server может быть создан файл мини-дампа. Примечание. Эта проблема обычно возникает, когда используются службы интеграции SQL Server (SSIS). Например, координатор распределенных транзакций (MS DTC) запускает распределенные транзакции вместе с параметром XACT_ABORT ON , если для свойства Level package TransactionOption задано значение Required.
Причина
Эта проблема возникает из-за ошибки в SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 или SQL Server 2014.
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 1 для SQL Server 2014 /en-us/help/2931693
Накопительное обновление 8 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/2917531
Накопительное обновление 10 для SQL Server 2008 R2 SP2 /en-us/help/2908087
Накопительное обновление 10 для SQL Server 2008 с пакетом обновления 1 (SP1) /en-us/help/2279604
Накопительное обновление 1 для SQL Server 2008 с пакетом обновления 2 (SP2) /en-us/help/2289254
Накопительное обновление 5 для SQL Server 2008 R2 /en-us/help/2438347
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
-
Последнее накопительное обновление для SQL Server 2012 с пакетом обновления 1 (SP1)
-
Последнее накопительное обновление для SQL Server 2008 R2 с пакетом обновления 2 (SP2)
-
Последнее накопительное обновление для SQL Server 2008 с пакетом обновления 1 (SP1)
-
Последнее накопительное обновление для SQL Server 2008 с пакетом обновления 2 (SP2)
Обходное решение
Для решения этой проблемы установите полную модель восстановления для базы данных.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Дополнительные сведения о параметре SET XACT_ABORT можно найти на веб-сайте Microsoft Developer Network (MSDN) по следующему адресу:
Общие сведения о параметре "задать XACT_ABORT"Дополнительные сведения о том, какие операции с минимальным протоколированием, можно найти на веб-сайте MSDN по следующему адресу:
Общие сведения об минимально запротоколированных операцияхДополнительные сведения о том, как обеспечить целостность данных с помощью транзакций, можно найти на веб-сайте MSDN по следующему адресу:
Общие сведения о том, как поддерживать целостность данных с помощью транзакций.Чтобы получить дополнительные сведения о модели добавочного обслуживания для SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблемЧтобы получить дополнительные сведения о схеме присвоения имен обновлениям SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerЧтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните следующий номер статьи базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт