在SQL Server中锁定表格中的一行

4

我需要在表格中锁定一行,以便在运行过程中没有人能够读取此行。我在此过程中使用了 BEGIN TRAN。因此,在此过程中,我试图阻止的记录是未提交的。 这是否可能?


1
可能是重复问题:https://dev59.com/4EXRa4cB1Zd3GeqPqD5b - granadaCoder
1个回答

0

根据您存储过程的目的:

- 如果它修改了提到的行,您可以基于事务级别

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRANSACTION

--在此处更新/插入/删除您的行

...

COMMIT TRANSACTION SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

- 使用锁提示

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRANSACTION

SELECT column1, column2

FROM yourTable WITH (ROWLOCK)

WHERE ID = YourRecordId

...

COMMIT TRANSACTION

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接