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

问题描述 投票:1回答:1

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

在MySQL中,我已经使用:

LOCK TABLES [table] WRITE

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

UNLOCK TABLES

现在阻止将停止。

SQL Server中可能吗?

sql-server locking
1个回答
4
投票
TABLOCKX将在表上获得排他锁,其他用户将无法读取或更新数据,除非您自己提交事务。

编辑

[而不是像我之前建议的那样执行SELECT *,只需执行SELECT TOP 1 1,它将在表上获得排他锁,并且不会浪费任何时间像SELECT *那样返回实际数据。

© www.soinside.com 2019 - 2024. All rights reserved.