2011-02-18 98 views
3

我是新來的SQL轉換。以下聲明的含義是什麼?這條SQL語句的含義是什麼?

BEGIN TRAN 
-- xlock the transaction 
IF EXISTS (SELECT 1 FROM dbo.ActiveTransaction WITH (XLOCK) WHERE TransactionId = @transactionId) 
BEGIN 
(Omitted) 
END 
COMMIT TRAN 

謝謝!

回答

7

這裏發生的事情是:

  1. SQL事務的開始
  2. 您檢查,看看是否dbo.ActiveTransaction表包含一個記錄,其中TransactionId等於在變量@transactionid的ALUE。
    1. 如果是的話,你做的 「(略)」 代碼
  3. 做出的COMMIT'ed到數據庫

的 'XLOCK' means that任何變化:

指定在事務完成之前採取並保持排它鎖。如果使用ROWLOCK,PAGLOCK或TABLOCK指定,則獨佔鎖適用於適當的粒度級別。