2013-04-18 8 views
6

Ich bekomme unter Fehler beim Einfügen von Datensätzen in der Datenbank.Sql Transaktionsfehler

Eigentlich füge ich Daten in der Datenbank nach Transaktionsumfangsmethode ein, deren Code unten beschrieben wird.

TransactionOptions tOptions = new TransactionOptions(); 
tOptions.IsolationLevel = IsolationLevel.ReadCommitted; 
tOptions.Timeout = TransactionManager.MaximumTimeout; 
using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew, tOptions)) 
{ 
} 

Gibt es etwas falsch in der obigen Aussage?

Eine Sache, die hier zu erwähnen ist, dass ich Bulk-Einfügen von Daten in mindestens 10 Tabellen mit vielen Datensätzen und Tabellen auch doppelte Datensätze in Bulk-einfügen eingefügt werden können, Syntax verwendet, um dies zu erreichen ist unten erwähnt.

CREATE UNIQUE INDEX Index_a ON table1([c1], [c2]) WITH IGNORE_DUP_KEY 

Ich wäre dankbar, wenn mir jemand mit diesem Problem helfen könnte.

+2

Welche Verbindung Timeout verwenden Sie? –

+0

Versuchen Sie, Ihren Code in einen try-catch-Block zu setzen und untersuchen Sie die Exception im Debugger. Ich habe das getan und manchmal mehr Details über das Problem bekommen, wie eine NULL, die in ein nicht Nullable-Feld eingefügt wird, so etwas. – Melanie

+4

Ist Ihre Operation erfolgreich, wenn Sie sie ohne die Transaktion ausführen? Wenn ja, wie lange dauert es, bis die Transaktion abgeschlossen ist? – Nathan

Antwort

1

Das Problem war, dass der MSDTC-Dienst deaktiviert war und ich Bulk-Db-Vorgänge verwendete. Nach der Aktivierung wurde das Problem behoben.

0

Offenbar haben Sie nicht festgeschriebene Transaktionen. Versuchen Sie, den Sql-Server oder Oracle-Dienst neu zu starten.

Verwandte Themen