Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie verfügen über eine Datenbank, die das BULK_LOGGED oder einfaches Wiederherstellungsmodell in Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 oder SQL Server 2014 verwendet.
-
Sie schalten den Schalter " XACT_ABORT einstellen " ein.
-
Sie versuchen, mehrere Bulk Insert -Anweisungen in einer einzelnen verteilten Transaktion auszuführen.
In diesem Szenario schlägt die Bulk Insert -Anweisung möglicherweise fehl, und es wird die folgende Fehlermeldung angezeigt:
Ort: PAGEREF. cpp: 913Expression: IS_OFF (BUF_MINLOGGED, M_buf->BSTAT) | | pageModifyType! = PageModifyType_Contents | | GetPagePtr ()->IsTextPage () SPID: 56Process ID: 2136Msg 3624, Level 20, State 1, Zeile 7a System Assertions Prüfung ist fehlgeschlagen. Weitere Informationen finden Sie im SQL Server-Fehlerprotokoll. In der Regel wird ein Assertionsfehler durch einen Softwarefehler oder Datenbeschädigung verursacht. Wenn Sie nach einer Datenbankbeschädigung suchen möchten, sollten Sie DBCC CHECKDB ausführen. Wenn Sie während des Setups zugestimmt haben, Dumps an Microsoft zu senden, wird ein Mini-dump an Microsoft gesendet. Möglicherweise ist ein Update von Microsoft im neuesten Service Pack oder in einem QFE vom technischen Support verfügbar. msg 0, Ebene 20, Zustand 0, Zeile 0 ein schwerwiegender Fehler beim aktuellen Befehl. Die Ergebnisse, falls vorhanden, sollten verworfen werden.
Darüber hinaus kann eine Mini Speicherdatei im SQL Server-Protokollordner generiert werden. Hinweis Dieses Problem tritt in der Regel bei Verwendung von SQL Server Integration Services (SSIS) auf. Beispielsweise ist Microsoft Distributed Transaction Coordinator (MS DTC) daran beteiligt, verteilte Transaktionen zusammen mit SET XACT_ABORT on zu starten, wenn die Eigenschaft TransactionOption auf Requiredeingestellt ist.
Ursache
Dieses Problem tritt aufgrund eines Fehlers in SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 oder SQL Server 2014 auf.
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2014 /en-us/help/2931693
Kumulatives Update 8 für SQL Server 2012 SP1 /en-us/help/2917531
Kumulatives Update 10 für SQL Server 2008 R2 SP2 /en-us/help/2908087
Kumulatives Update 10 für SQL Server 2008 SP1 /en-us/help/2279604
Kumulatives Update 1 für SQL Server 2008 SP2 /en-us/help/2289254
Kumulatives Update 5 für SQL Server 2008 R2 /en-us/help/2438347
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Um dieses Problem zu umgehen, stellen Sie die Datenbank auf das vollständige Wiederherstellungsmodell ein.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Weitere Informationen zur Einstellung XACT_ABORT festlegen finden Sie auf der folgenden Website von Microsoft Developer Network (MSDN):
Allgemeine Informationen zur Einstellung "XACT_ABORT festlegen"Weitere Informationen zu Vorgängen, die minimal protokolliert werden, finden Sie auf der folgenden MSDN-Website:
Allgemeine Informationen zu Vorgängen, die minimal protokolliert werdenWeitere Informationen zum aufrecht erhalten der Datenintegrität mithilfe von Transaktionen finden Sie auf der folgenden MSDN-Website:
Allgemeine Informationen zum Verwalten der Datenintegrität mithilfe von TransaktionenWenn Sie weitere Informationen zum inkrementellen Wartungsmodell für SQL Server erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
935897 Ein inkrementelles Wartungsmodell steht im SQL Server-Team zum Bereitstellen von Hotfixes für gemeldete Probleme zur Verfügung.Wenn Sie weitere Informationen zum Benennungsschema für SQL Server-Updates erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
822499Neues Benennungsschema für Microsoft SQL Server-SoftwareupdatepaketeWenn Sie weitere Informationen zur Terminologie für Softwareupdates erhalten möchten, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
824684 Beschreibung der Standardterminologie, die zum Beschreiben von Microsoft-Softwareupdates verwendet wird