要!!!
但你的SET TRANSACTION ISOLATION LEVEL SERIALIZABLE如果你不是非常强调脏读,且数据库并发访问数量不是非常大,建议去掉!!

解决方案 »

  1.   

    对于begin tran这有个例子你试试就全明白了!create table Table1 (a int)
    go
    create proc 过程名
    as
    begin tran
      insert table1 values(1)               ----这句是对的
      insert table1 values('aaa')           ----这句由于类型不一样将报错
    commit tran
    go--调用:
    exec 过程名
    go
    select * from table1         ------结果是两句都没插入!应为他们是一个事务
      

  2.   

    SERIALIZABLE 不是可以更有效的避免脏读吗?