即使使用tablock& amp; SQL表也未锁定HOLDLOCK

时间:2013-02-20 06:27:28

标签: sql sql-server database

我在桌面上使用SQL Lock。这是我的疑问:

set transaction isolation level serializable 
go
begin transaction 

select * from emp
waitfor delay '00:00:40'
rollback transaction

现在,当我尝试从其他地方访问表'emp'时(通过打开另一个查询分析器并在emp表上触发select查询),我仍然得到数据。它不应该返回数据,因为表被锁定了40秒。

注意:我还尝试过“ with(tablock,holdlock) ”,但仍然无效。

如何让桌子在40秒内无法访问?

1 个答案:

答案 0 :(得分:3)

我得到了答案

set transaction isolation level serializable 

go

begin transaction 

select * from emp with (TABLOCKX,holdlock)

waitfor delay '00:00:40'

rollback transaction

它会锁定表格,之后其他任何人都无法访问它,持续40秒。