none
Herausfinden, ob der Fehler einen automatischen Rollback verursacht hat RRS feed

  • Frage

  • Hallo
    gibt es einen Flag, welchen ich abfragen kann, ob nach einem Fehler durch SqlServer ein automatischer Rollback gemacht wurde?

    Ich suche einen Weg, das in meinem zentralen Error-Handling enzubauen.
    Eine Möglichkeit wäre natürlich vor/nachher @@trancount abzufragen, dann muss ich aber massenweise Code anpassen.
    Generell auf @@trancount=0 abfragen geht auch nicht, wenn keine Transaktion begonnen wurde, ist der Wert auch ohne Rollback 0...

    Thomas


    Unify/Gupta Team-Developer OLEDB SqlServer
    Mittwoch, 25. Januar 2012 11:55

Antworten

  • Hallo Thomas,

    das Verhalten ist abhängig vom Schweregrad (servity) des Fehlers.

    Z.B. kannst Du mit einem Try/Catch Block nur Fehler mit Grad 11 - 19 abfangen.
    Bei Fehlern mit Grad 20 und höher wird die Verbindung beendet, da hast Du eh keine weitere Möglichkeiten.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Mittwoch, 25. Januar 2012 18:41

Alle Antworten

  • Hallo Thomas,

    das Verhalten ist abhängig vom Schweregrad (servity) des Fehlers.

    Z.B. kannst Du mit einem Try/Catch Block nur Fehler mit Grad 11 - 19 abfangen.
    Bei Fehlern mit Grad 20 und höher wird die Verbindung beendet, da hast Du eh keine weitere Möglichkeiten.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Mittwoch, 25. Januar 2012 18:41
  • Vielen Dank Olaf!
    Unify/Gupta Team-Developer OLEDB SqlServer
    Donnerstag, 26. Januar 2012 05:49