问题1:比如平时我们的一条语句update tb set a='1' 这默认update会自动加上排它锁的是吗?这个时候如果有别的连接进行修改就不可以了?问题2:还是平时的一条语句update tb set a='1' 语句执行完a马上变成了'1'。当在事务中如下例:begin  tran  
        update tb set a='1'
        waitfor  delay  '00:00:30'    --等待30秒  
  commit  tran  
这个时候的update tb set a='1'执行完应该a没马上变成'1'吧?那它是处于什么状态呢?

解决方案 »

  1.   

    问题1:比如平时我们的一条语句update tb set a='1' 这默认update会自动加上排它锁的是吗?这个时候如果有别的连接进行修改就不可以了?是的,SQL SERVE会自动加上锁。
      

  2.   

    问题2:还是平时的一条语句update tb set a='1' 语句执行完a马上变成了'1'。当在事务中如下例:begin  tran  
        update tb set a='1'
        waitfor  delay  '00:00:30'  --等待30秒  
    commit  tran  
    这个时候的update tb set a='1'执行完应该a没马上变成'1'吧?那它是处于什么状态呢?对SQL SERVER来说,这个数据还没有变成1。对这个事务自身来说,已经更新了,但仍未提交。 数据属于未提交状态。