Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server – So sperren Sie eine Tabelle, bis eine gespeicherte Prozedur beendet ist

Ich brauchte diese Antwort selbst und entschied mich über den von David Moye bereitgestellten Link dafür und dachte, sie könnte für andere mit derselben Frage von Nutzen sein:

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