Я только установил SQL Server 2008R2, хотя мне нужно общаться с клиентами, имея 2005Является ли NOLOCK по умолчанию для операторов SELECT в SQL Server 2005?
[1] говорит:
"NOLOCK
Это не блокирует любой объект. Это значение по умолчанию для операций SELECT. Оно не применяется к операторам INSERT, UPDATE и DELETE «
[2], похоже, не упоминает об этом, но моя проверка в SSMS/SS 2008R2 показывает, что nolock не является подсказкой по умолчанию для SELECT.
Is WITH (NOLOCK) действительно по умолчанию в SQL Server 2005 SELECT?
Где это написано на BOL2005/2008?
Update:
Под "Где написано" Я ожидал увидеть ответы/комментарии/пояснения (или, лучше, цитаты) на всех процитированных из [1] частей:
«Это не блокирует какой-либо объект»
Выполняет ли SELECT без NOLOCK любые блокировки в SQL Server 2005 (с уровнем изоляции по умолчанию READ UNCOMMITTED)?
... в SQL Server 2008 (соответственно с READ COMMITTED)?То, что я прочитал на нем, можно понять, что NOLOCK позволяет игнорировать/обходить существующие блокировки, помещенные другой транзакцией ... но было совершенно неясно, ставит ли (или пытается поставить) текущую транзакцию (SELECT с NOLOCK) собственные замки ...
ОЧЕНЬ НЕОБХОДИМО ОТНОСИТСЯ Уровень изоляции (который используется как синоним использования подсказки NOLOCK) подразумевает отсутствие какой-либо блокировки?
"Это не относится к INSERT, UPDATE и DELETE заявления"
кажется правильными?
Это потому, что они (INSERT, UPDATE и DELETE) всегда блокируются, но SELECT не работает?
т.д.
[1]
http://blog.sqlauthority.com/2007/04/27/sql-server-2005-locking-hints-and-examples/
[2]
SQL Server 2005 Books Online. Table Hint (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms187373(SQL.90).aspx
Возможный дубликат [Указание блокировки по умолчанию на SQL Server 2005/2008] (http://stackoverflow.com/ Вопросы/3873076/default-table-lock-hint-on-sql-server-2005-2008) – gbn