数据库会自动加锁,当B-->C时,这两个表是锁住的,A-->B的操作会等待。

解决方案 »

  1.   

    如果insert先,此时系统会加锁,然后delete则将删除新加入的数据
    如果delete先,然后insert,此时insert可以同时进行, 数据将保存下来
    --模拟B-C,insert into Bbegin tran
    insert into C select * from B
    waitfor delay '00:00:05'
    commit tran--此时如果另一连接执行
    insert into B select 'xx','yy'执行结果select * from C 将是把新插入的记录一起放入C中--模拟delete B,insert into B
    begin tran
    delete  B
    waitfor delay '00:00:05'
    commit tran--此时如果另一连接执行
    insert into B select 'xx','yy'执行结果select * from B 将是把新插入的记录