SQL Server 数据库的事务处理在这里主要讲两种写法:
第一种:
begin transaction --开启事务
DECLARE @i INT; --定义一个变量 i
set @i=0; --给变量一个初始值
insert into TB_Salesman values ('SM007','李玲','女','D003','七级');
set @i=@i+@@ERROR
insert into TB_Salesman values ('SM006','李玲','女','D003','七级');
set @i=@i+@@ERROR
if(@i>0)
begin
rollback tran;--事务回滚
print '操作失败'
end
else
begin
commit tran;--事务提交
print '操作成功'
end
GO
第二种:使用 try catch
begin transaction --开启事务
DECLARE @i INT; --定义一个变量 i
set @i=0; --给变量一个初始值
begin try
insert into TB_Salesman values ('SM008','李玲','女','D003','七级');
insert into TB_Salesman values ('SM009','李玲','女','D003','七级');
end try
begin catch
set @i=@i+1; --加分号或不加都能正常执行
end catch
if(@i>0)
begin
rollback tran; --事务回滚
print '错了';
end
else
begin
commit tran; --事务提交
print 'OK';
end
GO