SQL server从入门精通---- 事务

-------------事务--------------
--我的理解(执行几条语句时,只要有一条语句执行不成功,其他的语句都不够被执行)

--事务:将多个操作当做一个独立的逻辑单元的执行方式为事务------
--特点:多个操作只有在都执行成功时才算成功,只要有一个执行失败那应该整体就属于失败,成功了可以提交,失败了可以回滚

语法
begin transaction tr_insert --开始事物(名称随便取
begin try
 insert into Q_user(uLogName) values('dsf')
 insert into Q_user(uLogName) values('dsf') 
 --违反了 UNIQUE KEY 约束“UQ__Q_user__07E32C94386667D8”。不能在对象“dbo.Q_user”中插入重复键。重复键值为 (dsf)。会报错
 --全部成功提交事务
 commit tran tr_insert --这里的名字
end try
begin catch
--报错获取异常回滚语句块
 rollback tran
end catch

select * from Q_user

create proc execTran
@sql1  nvarchar(1000),
@sql2  nvarchar(1000),
@rtn nvarchar(1000) output
as
begin tran tr_exec2
begin try
    exec @sql1
    exec @sql2
    set @rtn='success'
    commit tran execTran
end try
begin catch
    set @rtn=@@ERROR
    rollback tran tr_exec2
end catch
go

drop proc  execTran

declare @rtn nvarchar(100)
exec execTran 'insert into Q_user values(,,,,,,,,)','sql2',@rtn output
print @rtn
原文地址:https://www.cnblogs.com/CodeTaotao/p/4811971.html