beginend
是逻辑包住代码,没有什么事务可言,你可以直接用
begin tran,而不一定要写tran_name

解决方案 »

  1.   

    除非你有多个tran,才需要写,
      

  2.   

     如果你的一个处理逻辑模块中只有一个事务,begin tran tran_name 中的别名tran_name是可以省略的(即写成begin tran),但是tran是不可以省略的 
    仅仅有begin 和end 是不可以的,begin 和end 包含的是一段逻辑模块,这里头如果你不加事务,SQL server也会默认加一些事务,但是是非常小的,比如SQL server默认会给单个的update、delete语句加事务,但是这个是粒度非常小的事务,应该不能满足你的业务逻辑的
      

  3.   

     这个不能省,就如同drop table 表名一样,你如果把table省略,就会报错