SQL Server Assertionsfehler beim Versuch, eine Masseneinfügungs- oder BCP-Anweisung auszuführen
Dieser Artikel hilft Ihnen, das Problem zu beheben, das auftritt, wenn Sie versuchen, einen - oder BCP
-BULK INSERT
Vorgang auszuführen.
Ursprüngliche Produktversion: SQL Server 2008 R2 Enterprise, SQL Server 2008 Enterprise
Ursprüngliche KB-Nummer: 2700641
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
Auf Server A und Server B wird Microsoft SQL Server 2008 oder SQL Server 2008 R2 ausgeführt.
Sie richten die Datenbankspiegelung zwischen Server A und Server B ein.
Sie führen eine
BULK INSERT
- oderBCP
-Anweisung für die Prinzipaldatenbank aus.Hinweis
Standardmäßig ist die
CHECK_CONSTRAINTS
Option auf off festgelegt, wenn Sie eine - oderBCP
-BULK INSERT
Anweisung ausführen.Die Datenbankspiegelung ist unterbrochen, und die Datenbankspiegelungssitzung wechselt in den Zustand SUSPENDED.
In diesem Szenario erfolgt eine Assertion auf dem Spiegel Server. Daher wird im Protokollordner SQL Server eine Minidumpdatei erstellt. Darüber hinaus wird der folgende Fehler im SQL Server Fehlerprotokoll auf dem Spiegel-Server angezeigt:
Hinweis
Sie müssen die Datenbankspiegelung erneut initialisieren, um dieses Problem zu beheben.
Ursache
Dieses Problem tritt auf, weil die Informationen zur Sperrkompatibilität im Transaktionsprotokoll der Prinzipaldatenbank nicht an den Spiegel-Server übertragen werden.
Problemumgehung
Um dieses Problem zu umgehen, führen Sie die BULK INSERT
- oder BCP
-Anweisung für die Prinzipaldatenbank mithilfe der CHECK_CONSTRAINTS
-Option aus.
Hinweis
Die CHECK_CONSTRAINTS
Option führt zu einer langsameren Leistung. Die Sperre für den Spiegel Server tritt jedoch nicht auf.
Weitere Informationen
Während eines BULK INSERT
- oder BCP
-Vorgangs deaktiviert eine untergeordnete Transaktion die CHECK_CONSTRAINTS
Option. Diese untergeordnete Transaktion verwendet eine Sperre, die mit den übergeordneten Transaktionssperren kompatibel ist. Die Kompatibilitätsinformationen werden im Transaktionsprotokoll der Prinzipaldatenbank gespeichert. Daher wird die Anforderung für die untergeordnete Transaktionssperre für die Prinzipaldatenbank erteilt.
Diese Kompatibilitätsinformationen werden jedoch nicht an den Spiegel Server übertragen. Daher ist die Anforderung für die untergeordnete Transaktionssperre nicht mit den übergeordneten Transaktionssperren auf dem Spiegel Server kompatibel. In diesem Szenario wird die Assertion auf dem Spiegel Server verursacht.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für