注意:如果有类似的问题,请参考我。
我有两张桌子Request
& Receipt
。
我希望表Receipt
保持锁定状态,以便从任何地方进行 CRUD 操作,直到事务完成。我需要事务在存储过程中。
不可能吗?如何?
为什么要Receipt
保持锁定状态?
导致内部的插入或删除请求Receipt
将无法操作它!请注意,我需要从它的到它的每一个ReceiptId
都是连续的!Request
start
finish
正如我发现的那样,您可以在事务中对所需的表设置锁定:
begin tran
select 1 from myTable
with (tablock /*or tablockx to block even reads from table*/, holdlock)
-- do your work
commit tran
Run Code Online (Sandbox Code Playgroud)
但是当我在链接服务器表上运行此代码时,该表仍然可以从链接服务器内访问!为什么?我如何像我的例子一样在这个远程表上设置锁?