KB2412203 – Съобщение за грешка "Групово вмъкване с друг набор от незавършени резултати трябва да се изпълни с включено XACT_ABORT", когато изпълнявате транзакция DTC или MARS в SQL Server 2008 или SQL Server 2008 R2

Отнася се за
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Workgroup

Microsoft разпространява корекциите на Microsoft SQL Server 2008 и Microsoft SQL Server 2008 R2 като един файл за изтегляне. Тъй като корекциите са кумулативни, всяко ново издание съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2008 или SQL Server 2008 R2.

Симптоми

Имайте предвид сценария, описан по-долу:

  • Изпълнявате приложение на Microsoft SQL Server, което има конфигурирана транзакция на координатор на разпределени транзакции (DTC) или множество активни набори от резултати (MARS).

    Например изпълнявате Microsoft SQL Server Integration Services, което стартира DTC или MARS транзакция.

  • Стартирате операцията BULK LOAD като част от транзакцията DTC или MARS към целевата таблица. Опцията FIRE_TRIGGERS не е зададена в командата BULK INSERT на операцията BULK LOAD.

    Забележка: Операцията за групово зареждане изпълнява команда BULK INSERT.

  • Започвате друга операция за групово зареждане или стандартен език за манипулиране на данни (DML) операция за друга целева таблица, докато се изпълнява първата операция за групово зареждане. Тези паралелни операции са в една и съща транзакция DTC или MARS. .

В този случай може да получите следното съобщение за грешка:

Забележка

Грешка: 595, Степен на сериозност: 16, Щат: 1
Групово вмъкване с друг набор от неизпълнени резултати трябва да се изпълни с включен XACT_ABORT.

Причина

Този проблем възниква, защото SQL Server неправилно открива блокиране на MARS. SQL Server избягва блокирания, които могат да възникнат, когато стартирате транзакция с MARS или DTC. Въпреки това SQL Server не проверява дали опцията FIRE_TRIGGERS е зададена в командата BULK INSERT.

Забележка

  • За повече информация как да избегнете блокиране на MARS в SQL Server, вижте раздела "Редуващо се изпълнение" на статията "Множество активни набори от резултати (MARS) в SQL Server 2005" на уеб сайта на Microsoft Developer Network (MSDN).

    За повече информация относно статията "Множество активни набори от резултати (MARS) в SQL Server 2005" посетете следния уеб сайт на Microsoft Developer Network (MSDN):
    Статията "Множество активни набори от резултати (MARS) в SQL Server 2005"

Решение

Кумулативна информация за актуализацията

SQL Server 2008

Корекцията за този проблем е издадена за първи път в сборна актуализация 11 за SQL Server 2008 Service Pack 1. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2413738 Сборен пакет за актуализация 11 за SQL Server 2008 Service Pack 1Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

970365 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 1 Актуалните корекции на Microsoft SQL Server 2008 се създават за определени сервизни пакети за SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 1 към инсталация на SQL Server 2008 Service Pack 1. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.

SQL Server 2008 R2

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 5. За допълнителна информация как да получите този сборен пакет за актуализация за SQL Server 2008 R2, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2438347 Сборен пакет 5 за SQL Server 2008 R2 Забележка: Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция за SQL Server 2008 R2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

981356 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2

SQL Server 2008 Service Pack 2

Корекцията за този проблем е издадена за първи път в сборна актуализация 2 за SQL Server 2008 Service Pack 2. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2467239 Сборен пакет за актуализация 2 за SQL Server 2008 Service Pack 2Note Тъй като компилациите са кумулативни, всяко ново издание на корекции съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2402659 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 2 Горещи корекции на Microsoft SQL Server 2008 се създават за определени сервизни пакети за SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 2 към инсталация на SQL Server 2008 Service Pack 2. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Справки

За повече информация за командата BULK INSERT посетете следния уеб сайт на MSDN:

Обща информация за командата BULK INSERT За повече информация относно местоназначението на OLE базата данни посетете следния уеб сайт на MSDN:

Обща информация за местоназначението на OLE базата данни За повече информация относно модела на постъпково обслужване за SQL Server щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

935897 От екипа на SQL Server се предлага модел на постъпково обслужване, който да предоставя актуални корекции за съобщени проблеми

За допълнителна информация относно схемата за именуване на актуализациите на SQL Server щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

822499 Нова схема за именуване на пакетите за актуализация на софтуера на Microsoft SQL Server За повече информация относно терминологията за софтуерни актуализации щракнете върху следния номер на статия в базата знания на Microsoft:

824684 Описание на стандартната терминология, която се използва за описание на софтуерните актуализации на Microsoft