Gen*_*нин 2 t-sql sql-server transactions sql-server-2005 sql-server-2008
虽然我需要与拥有2005年的客户进行沟通,但我只安装了SQL Server 2008R2.
[1]告诉:
" NOLOCK
这不会锁定任何对象.这是SELECT操作的默认值.它不适用于INSERT,UPDATE和DELETE语句"
[2]似乎没有提到它,但我在SSMS/SS 2008R2中的检查显示nolock不是SELECT的默认提示.
是WITH(NOLOCK)真的默认SQL Server 2005中的SELECT?
它在BOL2005/2008中写在哪里?
更新:
在"它在哪里写"我希望看到[1]部分引用的所有答案/评论/澄清(或者更好的引用):
"这不会锁定任何对象"
没有NOLOCK的SELECT是否在SQL Server 2005中放置任何锁(具有默认隔离级别READ UNCOMMITTED)?
...在SQL Server 2008中(分别是READ COMMITTED)?
我读到的内容可以理解为NOLOCK允许忽略/绕过另一个事务所放置的现有锁...但是目前还不清楚当前事务(SELECT与NOLOCK)是否放置(或试图放置)自己的锁. .
READ UNCOMMITTED隔离级别(用作使用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联机丛书.表提示(Transact-SQL)http://msdn.microsoft.com/en-us/library/ms187373 (SQL.90)
.aspx
归档时间: |
|
查看次数: |
5955 次 |
最近记录: |