在我的事务解锁之前,如何从其他进程锁定SQL Server表?

时间:2016-12-07 19:49:02

标签: sql sql-server locking

我需要将sql server表更新到busy表。但是,我想确保在我完成更改之前,没有其他进程能够更新或选择该表的更新。

但是,我不希望所有其他请求失败,我只是希望他们在队列中等待,直到我解锁表。

如何锁定其他进程的表以确保在执行期间没有其他人更新该时间?

2 个答案:

答案 0 :(得分:1)

试试这个

BEGIN TRANSACTION;

-- Add exclusive lock on a table "i.e your_table" until the end of your transaction

SELECT ...
FROM your_table
WITH (TABLOCKX)

-- execute the update on "your_table" your the only one that can now

-- Save the change you made during the transaction and release the table for other transactions
COMMIT TRANSACTION;

答案 1 :(得分:0)

SQL-Server中,您可以对表格进行独占锁定。需要访问的其他进程将被搁置。