日期:2014-05-19  浏览次数:20562 次

关于lock table
数据库:Syabse

在存储过程的某个事务中,想使用lock   table来禁止其它事务访问该表,语句如下,

BEGIN   TRAN
    IF   条件1
            lock   table   A   in   exclusive   mode   wait   60
   
    。。。。

    COMMIT   TRAN
END

问题:
上述语句是只有满足条件1才锁表,还是在任何情况下只要进入事务就锁表?

谢谢大家!


------解决方案--------------------
不懂。不过从字面上看满足条件1才锁表。
------解决方案--------------------
滿足條件時
------解决方案--------------------
study
------解决方案--------------------
BEGIN TRAN 本来就已经加锁了,现在如果满足你的条件就有放一个锁上去,虽然都是在一个连线中,可是如果这时如果在BEGIN TRAN之后if之前发生并发,那么你死锁的几率肯定大,至于为什么我也说不清楚,根据我的经验数据库里的锁如果同时存在很多,发生死锁的机率也大的多了
------解决方案--------------------
lock table都是在事务结束的时候解锁的
所以需要一种显示的解锁方式