# Wie Tabelle in MS SQL Server sperren



## TOLIK (29. April 2010)

Hallo, 

ich habe eine Datenbank Anwendung, in der mehrere Benutzer auf die gleiche Datenbank zugreifen. 
Nun möchte ich, dass wenn ein Benutzer in einer Tabelle (in der eine Baumstruktur mittels Nested Set Modell abgebildet wird)
Änderungen vornehmen möchte, vorher einen Button betätigt um in den "Design" Mode zu wechseln. 
Wenn dieser Button betätigt wird soll überprüft werden ob die Tabelle gesperrt ist, wenn nein dann soll die besagte Tabelle für alle anderen Benutzer gesperrt werden. 
Wenn die Tabelle gesperrt ist, dann muss er halt warten bis  die Sperre aufgehoben hat. Es soll dadurch erzwungen werden das die User eine bewusste Entscheidung treffen wenn sie änderungen an der Struktur vornehmen wollen. Zudem soll dadurch die Datenintegrität gewährleistet werden.  

Meine Frage ist nun wie ich eine Tabelle für einen bestimmten Zeitraum sperren kann, oder ob es andere Möglichkeiten gibt so eine Problemstellung zu lösen.


Schönen Gruß,
tolik


----------



## Nico Graichen (29. April 2010)

Hi

Schau dir mal die diversen Lock-Möglichkeiten an
http://www.mssqlcity.com/Articles/Adm/SQL70Locks.htm


----------



## TOLIK (29. April 2010)

Hallo,

in dem Artikel ist es beschrieben wie man eine Tabelle während eines Insert/Update/Select sperrt.
Ich wollte eigentlich wissen ob man eine Tabelle exklusiv sperren kann unabhängig von irgendwelchen SQL Statements...

Schönen Gruß,
tolik


----------



## Nico Graichen (29. April 2010)

Ich verstehe nicht, warum die komplette Tabelle auf Dauer gelockt werden soll. Was designed der Anwender? Die Tabelle oder Daten?


----------



## Alex F. (30. April 2010)

Für das was du vor hast gibt es keine Funktionalität vom SQL Server selber . Wenn du also Tabellen sperren willst musst du dir selber was Programmieren. Aber wie Nico schon sagt es macht keinen Sinn.


----------

