Ich weiß, dass NOLOCK ist Standard für SELECT-Operationen. Wenn ich also nicht einmal das Schlüsselwort with (NOLOCK)
für eine Select-Abfrage schreibe, wird die Zeile nicht gesperrt.Welche Art von Sperrmodus für INSERT-, UPDATE- oder DELETE-Vorgänge in SQL Server?
Ich konnte nicht finden, was passiert, wenn with (ROWLOCK)
nicht für die Abfrage UPDATE und DELETE angegeben ist. Gibt es einen Unterschied zwischen den folgenden Abfragen?
UPDATE MYTABLE set COLUMNA = 'valueA';
und
UPDATE MYTABLE WITH (ROWLOCK) set COLUMNA = 'valueA';
Warum haben Sie den Eindruck, dass 'NOLOCK' die Standardeinstellung ist? –
@MartinSmith Dies wird in [link] (https://technet.microsoft.com/en-us/library/ms172398 (v = sql.110) .aspx) als 'Dies ist der Standard für SELECT-Operationen. ' – Tunahan
Das ist keine Dokumentation über das markierte Produkt. "Das Verwenden von Sperrhinweisen in SQL Server Compact 4.0 ähnelt dem von SQL Server. ** Für SQL Server Compact 4.0 weist der NOLOCK-Hinweis jedoch ein völlig anderes Verhalten auf als für SQL Server **. In SQL Server Compact 4.0 Der NOLOCK-Hinweis ist der Standard für SELECT-Anweisungen, erzwingt jedoch weiterhin Read Committed-Verhalten. " –