我需要能够在做一些工作的同时锁定SQL Server中的表。该锁需要阻止其他会话读取表。工作完成后,需要将表解锁。
在MySQL中,我已经使用:
LOCK TABLES [table] WRITE
这时尝试从表中读取时,其他会话将被阻止,直到表被解锁。
UNLOCK TABLES
现在阻止将停止。
SQL Server中可能吗?
TABLOCKX
将在表上获得排他锁,其他用户将无法读取或更新数据,除非您自己提交事务。 编辑
[而不是像我之前建议的那样执行
SELECT *
,只需执行SELECT TOP 1 1
,它将在表上获得排他锁,并且不会浪费任何时间像SELECT *
那样返回实际数据。