SQL Server:锁定表以阻止尝试读取表的其他会话

时间:2015-08-30 17:21:08

标签: sql-server locking

我需要能够在做一些工作时锁定SQL Server中的表。锁需要阻止其他会话读取表。工作完成后,需要解锁表格。

在MySQL中,我通过使用:

完成了这项工作
LOCK TABLES [table] WRITE

此时,在尝试从表中读取时,其他会话将被阻止,直到表被解锁。

UNLOCK TABLES

现在阻止将停止。

这在SQL Server中是否可行?

1 个答案:

答案 0 :(得分:3)

BEGIN TRANSACTION 

    SELECT * FROM TableName WITH (TABLOCKX)
  /* do your stuff here */

COMMIT TRANSACTION

TABLOCKX将获取表上的独占锁,并且在您自己提交事务之前,其他用户将无法读取或更新数据。