sqlserver查看锁 - SQL Server-如何锁定表直到存储过程完成




sql server锁 (2)

我想做这个:

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

有可能吗?

最后,我希望我的SQL服务器报告服务报告调用过程A,然后只在过程完成后显示表a。 (我无法更改程序A以返回表格a)。



我自己和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






locking