Gre*_*reg 44 sql t-sql sql-server stored-procedures locking
我想做这个:
create procedure A as
lock table a
-- do some stuff unrelated to a to prepare to update a
-- update a
unlock table a
return table b
Run Code Online (Sandbox Code Playgroud)
有可能吗?
最后,我希望我的SQL服务器报告服务报告调用过程A,然后只在过程完成后显示表a.(我无法更改程序A以返回表格a).
Gra*_*ham 51
我自己和David Moye提供的链接需要这个答案,对此做出了决定并认为它可能对其他人有同样的问题:
CREATE PROCEDURE ...
AS
BEGIN
BEGIN TRANSACTION
-- lock table "a" till end of transaction
SELECT ...
FROM a
WITH (TABLOCK, HOLDLOCK)
WHERE ...
-- do some other stuff (including inserting/updating table "a")
-- release lock
COMMIT TRANSACTION
END
Run Code Online (Sandbox Code Playgroud)
Xin*_*Xin 15
BEGIN TRANSACTION
select top 1 *
from table1
with (tablock, holdlock)
-- You do lots of things here
COMMIT
Run Code Online (Sandbox Code Playgroud)
这将保持"表锁"直到您当前的"交易"结束.
| 归档时间: |
|
| 查看次数: |
114505 次 |
| 最近记录: |