Da hier im Forum kein Bereich Datenbank existiert, setze ich es mal unter Webentwicklung, weil ich es in diesem Zusammenhang auch brauche.
Es ist etwas kompliziert und ich versuche mal, es verständlich zu beschreiben

Mit den in HTML Formularen erfassten Daten werden mehrere verkettete Inserts in die DB geschrieben.
INSERT Satz 1 (auto increment erzeugt eine neue Datensatz ID)
SELECT @@identity AS id (ermitteln der neu angelegten ID aus Satz 1)
INSERT Satz 2 (wobei die ermittelte ID aus Satz 1 mit in den Satz 2 einfliesst)
SELECT @@identity AS id (ermitteln der neu angelegten ID aus Satz 2)
INSERT Satz 3 (wobei die ermittelte ID aus Satz 2 mit in den Satz 3 einfliesst)
SELECT @@identity AS id (ermitteln der neu angelegten ID aus Satz 3)
UPDATE Satz x (wobei u.a. die ID's aus Satz 1, Satz 2, Satz 3 gespeichert werden)
.
.
Hierbei kann es vorkommen, dass ein Satz, durch welchen Fehler auch immer, nicht geschrieben wird, wodurch die Verkettung ins Nirwana läuft.
Im Hinterkopf hatte ich immer das Thema "Transaktionen (mssql Transaction)", also habe ich mich mal in das Thema eingelesen und stelle fest, dass nun noch mehr Fragen auftauchen als vorher. (Zu Anfang gab es schliesslich nur die Frage: "Was ist das?"

In der Theorie soll Transaction eine Reihe von Datebank Aktionen als eine Einheit durchführen und wenn's schiefgeht kann durch ein Rollback die Datenbank zurückgesetzt werden. Hört sich Perfekt an.
Hat sich schon mal jemand von Euch mit Transaktion befasst?
Wenn ja, folgenden Fragen konnte ich bisher nicht ausreichend klären:
- Werden die Daten lediglich Temporär im Datenbankspeicher gehalten und erst geschrieben, wenn alle Daten korrekt verarbeitet werden können?
- wie verhält es sich in diesem Fall mit den ID's? Sind die dann bereits vergeben oder kann ein anderer Benutzer diese plötzlich belegen?
- werden die Daten direkt in die DB eingetragen?
- Wenn nun nicht alle Daten verarbeitet werden können und ein Rollback durchgeführt wird, steht dann in der Zwischenzeit ein falsch verkettetes Fragment in der Datenbank?
- habe ich nach einem Rollback eine Lücke in den per autoincrement vergebenen ID's?
Über Tip's und Hinweise würde ich mich freuen, am Meisten jedoch über eine Anwort oder einen Link zu ausführlichen Doku's mit entsprechenden Antworten.