SQL Server und Verbindungsverlust mitten in einer Transaktion [duplizieren]

8

Was passiert, wenn die Verbindung mitten in einer Transaktion verloren geht?

Ich nehme an, dass, wenn die Transaktion nie ausgeführt wird und erneut ausgeführt werden könnte, aber ... gibt es eine Möglichkeit, eine Verbindung herzustellen und sie zu einem gespeicherten Punkt zurückzurollen und mit den Dingen fortzufahren, die ich bereits habe?

Mit freundlichen Grüßen.

    
vtortola 12.02.2011, 13:44
quelle

2 Antworten

8

Wenn Sie die Verbindung mitten in einer Transaktion verlieren, können Sie diese Transaktion nicht mehr von einer anderen Verbindung aus erneut eingeben. Wenn die Verbindung getrennt wird, führt SQL Server alle nicht festgeschriebenen Transaktionen automatisch zurück. Wenn dies der Fall ist, verbinden Sie sich einfach neu und Sie werden feststellen, dass Ihre Datenbank den gleichen Status hat wie vor dem Start der Transaktion (vorausgesetzt, es gibt natürlich keine anderen Benutzer, die sie zwischenzeitlich geändert hätten.)

    
Darin Dimitrov 12.02.2011, 13:53
quelle
2

Im Allgemeinen wird jede Unterbrechung der Transaktion rückgängig gemacht. Ob der Client die Verbindung trennt, CommandTimeout oder der Server startet sich selbst neu.

Dies ist Atomic in ACID

Die Möglichkeit, eine Transaktion dort abzuholen, wo sie aufgehört hat, macht keinen Sinn

  • andere Transaktionen, die passieren / die Transaktions-LSN wird nicht in Ordnung sein
  • interne Strukturen werden als Teil eines Schreibvorgangs (Indizes usw.) geändert / die Datenbank ist inkonsistent
gbn 12.02.2011 14:14
quelle