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

时间:2011-02-18 08:56:11

标签: sql sql-server tsql

我是SQL事务的新手。以下陈述的含义是什么?

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

谢谢!

1 个答案:

答案 0 :(得分:7)

这里发生的事情是:

  1. 开始进行Sql事务
  2. 您检查dbo.ActiveTransaction表是否包含TransactionId等于变量@transactionid中的值的记录。
    1. 如果是,则执行“(略)”代码
  3. 所做的任何更改都是对数据库的委托
  4. 'XLOCK'means that

      

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