不会。insert ...这个事务完成后才会执行select ..

解决方案 »

  1.   

    如果不是同一个进程可以:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE是为了防止在事务没有完成的时候另一用户,访问事务内,未提交的数据
    create table Table1 (a int)
    go
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
    begin tran
      insert table1 values(1)               ----这句在事物没有commit前,被另一个用户
                                            ----访问是错误的,应为下面有可能会出错  insert table1 values('aaa')           ----这句由于类型不一样将报错
                                            ----设置了SERIALIZABLE的话就不会发生脏读
    commit transelect * from table1
      

  2.   

    可以用一个事务来保证数据的插入,然后再select