Forums Neueste Beiträge
 

SQL 2008: Query-Fenster ohne Autocommit

19/03/2010 - 10:32 von Stefan Dase | Report spam
Hallo allerseits,

vor drei Wochen habe ich den Arbeitgeber gewechselt und arbeite nun mit
dem MS SQL-Server, Versionen 2000 und 2008. Im letzten Betrieb hatten
wir Oracle 11g im Einsatz.

Zur Verwaltung benutzen wir das SQL Server Management Studio (2008).
Wenn ich eine SQL-Anweisung mit INSERT oder UPDATE in ein Query-Fenster
schreibe, wird sie sofort commited. Das Verhalten ist für mich
ungewohnt, im Oracle SQL Developer konnte man die Anweisung zunàchst
ausführen, ggf. Fehler oder betroffene Zeilen prüfen, und dann ein
Commit absetzen.

Gibt es eine vergleichbare Einstellung im Management Studio? Klar werde
ich mich mit der Zeit daran gewöhnen, aber vor allem zu Anfang könnte
das mal in die Hose gehen. *g*

Viele Grüße aus Bremen,
Stefan
 

Lesen sie die antworten

#1 Elmar Boye
19/03/2010 - 12:11 | Warnen spam
Hallo Stefan,

"Stefan Dase" schrieb ...
vor drei Wochen habe ich den Arbeitgeber gewechselt



Dann viel Erfolg im neuen Job!

und arbeite nun mit dem MS SQL-Server, Versionen 2000 und 2008.
Im letzten Betrieb hatten wir Oracle 11g im Einsatz.
Zur Verwaltung benutzen wir das SQL Server Management Studio (2008).
Wenn ich eine SQL-Anweisung mit INSERT oder UPDATE in ein Query-Fenster schreibe,
wird sie sofort commited. Das Verhalten ist für mich ungewohnt,
im Oracle SQL Developer konnte man die Anweisung zunàchst ausführen,
ggf. Fehler oder betroffene Zeilen prüfen, und dann ein Commit absetzen.

Gibt es eine vergleichbare Einstellung im Management Studio?



Gibt es mit SET IMPLICIT_TRANSACTIONS ON
http://msdn.microsoft.com/de-de/lib...87807.aspx

und kann auch unter Extras->Optionen eingestellt werden.

Klar werde ich mich mit der Zeit daran gewöhnen,
aber vor allem zu Anfang könnte das mal in die Hose gehen. *g*



Aber besser gewöhnst Du Dich gleich um.
Denn Transaktionen werden beim SQL Server seit eh und je explizit
angestossen (sog. AutoCommit Modus).

Das SQL, das Du schreibst, sollte darauf ausgelegt werden,
sonst wird es mit dem von anderen (ohne Oracle Hintergrund)
schnell kollidieren.

http://msdn.microsoft.com/de-de/lib...90612.aspx
"Transaktionen (Datenbankmodul)"
und dort vor allem AutoCommit / Implizite Transaktionen

Bedenke auch das Oracle's Sperrmodell für Read Committed in etwa
der Snapshot Isolation (READ_COMMITTED_SNAPSHOT) von SQL Server
entspricht (die mehr für Oracle Migranten eingeführt wurde ;-).

Deswegen Du solltest Dir das Kapitel
http://msdn.microsoft.com/de-de/lib...87101.aspx
"Sperren und Zeilenversionsverwaltung"
ebenfalls beizeiten zu Gemüte führen.

Denn gleich geschriebene Anweisungen funktionieren
- teilweise diffizil - anders.

Gruß Elmar

Ähnliche fragen