Ist NOLOCK die Standardeinstellung für SELECT-statementen in SQL server 2005?

Ich habe nur SQL server 2008R2 installiert, obwohl ich mit Kunden mit 2005 kommunizieren muss.

[1] sagt:

  • " NOLOCK

    Dadurch wird kein object gesperrt. Dies ist die Voreinstellung für SELECT-Operationen. Es gilt nicht für INSERT-, UPDATE- und DELETE-statementen "

[2] scheint nicht zu erwähnen, aber mein Check-in SSMS / SS 2008R2 zeigt, dass Nolock ist kein Standard-Hinweis für SELECT.

Ist WITH (NOLOCK) wirklich in SQL server 2005 SELECT?
Wo steht es in BOL2005 / 2008?


Aktualisieren:
Unter "Wo ist es geschrieben", erwarte ich, um Antworten / Kommentare / Klarstellungen (oder besser Zitate) auf alle zitierten aus [1] Teilen zu sehen:

  • "Das verriegelt kein object"

    Ist SELECT ohne NOLOCK irgendwelche Schlösser in SQL server 2005 (mit standardmäßiger Isolationsstufe READ UNCOMMITTED)?
    … in SQL server 2008 (bzw. mit READ COMMITTED)?

    Was ich hier gelesen habe, kann verstanden werden, dass NOLOCK erlaubt, bestehende Schlösser zu ignorieren / zu umgehen, die durch eine andere Transaktion gesetzt wurden … aber es war ganz unklar, ob die aktuelle Transaktion (SELECT mit NOLOCK) ihre eigenen Sperren einsetzt (oder versucht) .

    Ist LESE UNCOMMITTED Isolation Ebene (die als Synonym für die Verwendung von NOLOCK Hinweis verwendet wird) implizieren Abwesenheit von Sperrung?

  • "Es gilt nicht für INSERT-, UPDATE- und DELETE-statementen"
    Es scheint richtig zu sein
    Ist es, weil sie (INSERT, UPDATE und DELETE) immer sperren, aber SELECT nicht?
    etc.

[1]
http://blog.sqlauthority.com/2007/04/27/sql-server-2005-locking-hints-and-examples/
[2]
SQL server 2005 Bücher Online. Tabellenhinweis (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms187373(SQL.90).aspx

Siehe das Duplikat

NOLOCK ist nicht die Voreinstellung und kann nicht als solche gesetzt werden. Der Link SQL Authority ist eindeutig falsch.

Soweit mir bekannt ist, ist NOLOCK für die SELECT-statementen nicht standardmäßig. Sie müssen genau angeben, ob Sie NOLOCK mit SELECT verwenden möchten.

Nein, soweit ich weiß, ist ROWLOCK die Voreinstellung für SELECT-statementen in NORMAL-Zigaretten. Verwenden Sie etwas wie SQL-Profiler, um es zu bestätigen. Offensichtlich werden verschiedene andere Umstände die Standard-Sperrstrategie ändern, egal ob Sie sich im Wiederherstellungsmodus und Isolationsstufen usw. befinden.