Announcement

Collapse
No announcement yet.

Transaktion über mehrere Prozeduren hinweg

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Transaktion über mehrere Prozeduren hinweg

    hallo,
    ich schreibe gerade eine Prozedur welche einen Insert macht und dann weitere Prozeduren aufruft.

    Aktuell ist es so dass ich meine Transaction vor dem Insert starte und nach dem Prozeduraufruf schließe. Hat zur Folge dasss er mein Insert immer macht auch wenn in der SP etwas schief läuft.

    Wie muss ich es machen damit er mir nur alles speichert wenn alles ohne Fehler war?

    Muss ich bei den SPs mit Rückgabeparametern arbeiten die ich in der aufrufenden SP auswerte?

  • #2
    Hallo openshinok,

    Du kannst über @@ERROR <> 0 prüfen, ob bei der Ausführung zuvor ein Fehler aufgetreten war. Zur zusätzlichen Sicherheit könnten die SPs im Fehlerfall einen Wert <> 0 zurücklieferen, den ReturnCode kann dann vom Aufrufer geprüft und entsprechend weiter verfahren werden.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      versuch mit try catch blöcken zu arbeiten

      bsp
      begin try
      -- ich tue irgendwas
      begin transaction...
      end try
      begin catch
      -- wenn ein Fehler erfolgt ist rollback
      -- andernfalls commit
      end catch
      grüße

      Comment


      • #4
        hier hab ich was schönes gefunden

        http://msdn.microsoft.com/de-de/libr...v=SQL.90).aspx

        Comment

        Working...
        X