bierkistenschlepper
Goto Top

Transactionsbefehle MSSQL

Ich soll für die Uni eine Übersicht der MSSQL-Befehle machen, die das Transaktionsverhalten steuern. Natürlich hat man uns eine Übersicht SÄMTLICHER SQL Befehle mitgegeben. Ich habe null Ahnung welches daraus die interessierenden sein sollen. Kann mir vielleicht jemand weiterhelfen?

Welche Isolations-Level sieht der MSSQL-Server überhaupt vor?

Content-Key: 80333

Url: https://administrator.de/contentid/80333

Printed on: April 25, 2024 at 12:04 o'clock

Member: AndreasHoster
AndreasHoster Feb 09, 2008 at 21:59:44 (UTC)
Goto Top
Tipp: Lade Dir den SQL2005 Express bei MS runter und schaue in die Online-Hilfe. Da findet sich fast alles.
Aus der Online Hilfe des SQL2000:
In SQL-92 werden die folgenden Isolationsstufen definiert, die auch von SQL Server unterstützt werden:
Commit muss vor Lesevorgang nicht ausgeführt sein (Read Uncommitted) (die unterste Stufe, auf der Transaktionen nur soweit isoliert werden, dass sichergestellt ist, dass keine physisch beschädigten Daten gelesen werden).

Commit muss vor Lesevorgang ausgeführt sein (Read Committed) (Standardstufe von SQL Server).

Repeatable Read.

Serialisierbare Isolationsstufe (Serializable) (die höchste Stufe, auf der Transaktionen vollständig voneinander isoliert werden).

Und der wichtigste zur Steuerung:
SET TRANSACTION ISOLATION LEVEL
Steuert das Standardsperrverhalten von Transaktionen für alle SELECT-Anweisungen von Microsoft® SQL Server™, die von einer Verbindung ausgegeben werden.

Syntax
SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED
READ UNCOMMITTED
REPEATABLE READ
| SERIALIZABLE
}

Und unter siehe auch bei Expliziten Transaktionen finden sich:
BEGIN DISTRIBUTED TRANSACTION
BEGIN TRANSACTION
COMMIT TRANSACTION
COMMIT WORK
ROLLBACK TRANSACTION
ROLLBACK WORK
SAVE TRANSACTION
SET IMPLICIT_TRANSACTIONS
@@TRANCOUNT

Damit dürften wir die wichtigsten erledigt haben.

Ansonsten: http://msdn2.microsoft.com/en-us/library/ms175523.aspx (Controlling Transactions in SQL2005)
Member: Bierkistenschlepper
Bierkistenschlepper Feb 09, 2008 at 22:08:09 (UTC)
Goto Top
Ganz herzlichen Dank! zehnzeichen
Member: Bierkistenschlepper
Bierkistenschlepper Feb 14, 2008 at 11:24:56 (UTC)
Goto Top
Was macht denn

READ COMMITTED SNAPSHOT?

Snapshot selbst verhindert ja quasi, dass Änderungen die während der Laufzeit einer TRansaktion bestätigt werden, glesen werden können.
Member: AndreasHoster
AndreasHoster Feb 14, 2008 at 14:29:56 (UTC)
Goto Top
Ich nehme an, Du meinst den Unterschied zwischen Transaction Level READCOMMITTED mit der Datenbank-Option READ_COMMITTED_SNAPSHOT auf ON und dem Transaction Level SNAPSHOT?

Beim Lesen der Doku denke ich, daß es da keinen Unterschied gibt. Allerdings gabs den Level SNAPSHOT unter SQL 2000 noch nicht, eventuell gibts deswegen die beiden Varianten.