Příznaky
Zvažte následující scénář:
-
Máte databázi, která používá BULK_LOGGED nebo jednoduchý model obnovení v Microsoft SQL serveru 2008, SQL serveru 2008 R2, SQL serveru 2012 nebo SQL Server 2014.
-
Zapnete přepínač nastavit XACT_ABORT .
-
Pokusíte se spustit více příkazů hromadného vkládání v jedné distribuované transakci.
V tomto scénáři se může stát, že příkaz hromadného vkládání selže a zobrazí se následující chybová zpráva:
Location: PAGEREF. cpp: 913Expression: IS_OFF (BUF_MINLOGGED, m_buf->bstat) | | pageModifyType! = PageModifyType_Contents | | GetPagePtr ()->IsTextPage () SPID: 56Process ID: 2136Msg 3624, Level 20, state 1, došlo k chybě kontroly systémového kontrolního výrazu. Podrobnosti najdete v protokolu chyb systému SQL Server. Selhání výrazu obvykle způsobuje chybu softwaru nebo poškození dat. Pokud chcete zkontrolovat poškození databáze, zkuste spustit příkaz DBCC CHECKDB. Pokud jste se dohodli, že budete během instalace posílat výpisy Microsoftu, pošle vám do Microsoftu mini výpis. Aktualizace může být k dispozici od Microsoftu v nejnovější aktualizaci Service Pack nebo v aktualizaci QFE technické podpory. msg 0, úroveň 20, stav 0, čára 0: v aktuálním příkazu došlo k závažné chybě. Případné výsledky se zahodí.
Navíc může být ve složce protokolu systému SQL Server generován soubor s minimálním výpisem. Poznámka K tomuto problému obvykle dochází, když se používají služby SQL Server Integration Services (SSIS). Služba MS DTC (Microsoft Distributed Transaction Coordinator) je například zahrnuta v části Spuštění distribuovaných transakcí pomocí nastavení XACT_ABORT v případě, že je vlastnost na úrovni balíčku TransactionOption nastavena na povinné.
Příčina
K tomuto problému dochází kvůli chybě v SQL serveru 2008, SQL serveru 2008 R2, SQL serveru 2012 nebo SQL Server 2014.
Řešení
Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru.
Kumulativní aktualizace 1 pro SQL Server 2014 /en-us/help/2931693
Kumulativní aktualizace 8 pro SQL Server 2012 SP1 /en-us/help/2917531
Kumulativní aktualizace 10 pro SQL Server 2008 R2 SP2 /en-us/help/2908087
Kumulativní aktualizace 10 pro SQL Server 2008 SP1 /en-us/help/2279604
Kumulativní aktualizace 1 pro SQL Server 2008 SP2 /en-us/help/2289254
Kumulativní aktualizace 5 pro SQL Server 2008 R2 /en-us/help/2438347
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:
Alternativní řešení
Tento problém vyřešíte tak, že nastavíte databázi na úplný model obnovení.
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Odkazy
Další informace o nastavení XACT_ABORT nastavit najdete na následujícím webu MSDN (Microsoft Developer Network):
Obecné informace o nastavení "SET XACT_ABORT"Další informace o velmi protokolovaných operacích najdete na následujícím webu MSDN:
Obecné informace o velmi protokolovaných operacíchDalší informace o tom, jak spravovat integritu dat pomocí transakcí, najdete na následujícím webu MSDN:
Obecné informace o tom, jak spravovat integritu dat pomocí transakcíDalší informace o modelu přírůstkové obsluhy pro SQL Server najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
935897 Model přírůstkové obsluhy je dostupný od týmu SQL serveru a poskytuje opravy hotfix pro nahlášené problémy.Další informace o schématu přidělování názvů pro aktualizace systému SQL Server najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů balíčkům aktualizací softwaru pro Microsoft SQL ServerDalší informace o terminologii aktualizací softwaru najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft