这个SQL语句的含义是什么?

smw*_*dia 3 sql t-sql sql-server

我是SQL transction的新手.以下陈述的含义是什么?

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

谢谢!

Rob*_*Rob 7

这里发生的事情是:

  1. Sql事务处理已开始
  2. 您检查dbo.ActiveTransaction表中是否包含一个记录,其中TransactionId等于变量@transactionid中的alue.
    1. 如果是,则执行"(略)"代码
  3. 所做的任何更改都是对数据库的COMMIT

'XLOCK' 意味着:

指定在事务完成之前采用并保持独占锁.如果使用ROWLOCK,PAGLOCK或TABLOCK指定,则排它锁适用于适当的粒度级别.