我需要在表格中锁定一行,以便在运行过程中没有人能够读取此行。我在此过程中使用了 BEGIN TRAN
。因此,在此过程中,我试图阻止的记录是未提交的。
这是否可能?
我需要在表格中锁定一行,以便在运行过程中没有人能够读取此行。我在此过程中使用了 BEGIN TRAN
。因此,在此过程中,我试图阻止的记录是未提交的。
这是否可能?
根据您存储过程的目的:
- 如果它修改了提到的行,您可以基于事务级别。
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