我需要能够在做一些工作时锁定SQL Server中的表。锁需要阻止其他会话读取表。工作完成后,需要解锁表格。
在MySQL中,我通过使用:
完成了这项工作LOCK TABLES [table] WRITE
此时,在尝试从表中读取时,其他会话将被阻止,直到表被解锁。
UNLOCK TABLES
现在阻止将停止。
这在SQL Server中是否可行?
答案 0 :(得分:3)
BEGIN TRANSACTION
SELECT * FROM TableName WITH (TABLOCKX)
/* do your stuff here */
COMMIT TRANSACTION
TABLOCKX
将获取表上的独占锁,并且在您自己提交事务之前,其他用户将无法读取或更新数据。