sqlserver的事务sql
1 ---开启事务 2 begin tran 3 --错误扑捉机制,看好啦,这里也有的。并且可以嵌套。 4 begin try 5 --语句正确 6 UPDATE [jichu].[cheliang].[pinpai] SET img = '../kkkkkkkkk.jpg' WHERE id = '5' 7 --出错 8 UPDATE [jichu].[zulin].[heimingdan] SET idnum = '130123198908152kkk' WHERE id = '1' 9 -- 另一个库里的表 10 UPDATE [bz].[cheliang].[chelianginfo] SET vinn = 'kkkkkkkkkkkkkkkkkk' WHERE chepaihao = '苏BZ2222' 11 end try 12 begin catch 13 select Error_number() as ErrorNumber, --错误代码 14 Error_severity() as ErrorSeverity, --错误严重级别,级别小于10 try catch 捕获不到 15 Error_state() as ErrorState , --错误状态码 16 Error_Procedure() as ErrorProcedure , --出现错误的存储过程或触发器的名称。 17 Error_line() as ErrorLine, --发生错误的行号 18 Error_message() as ErrorMessage --错误的具体信息 19 if(@@trancount>0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务 20 rollback tran ---由于出错,这里回滚到开始,第一条语句也没有插入成功。 21 end catch 22 if(@@trancount>0) 23 commit tran -- 提交事务 24 25 -- 查询验证 26 select * from [jichu].[cheliang].[pinpai] WHERE id = '5'; 27 select * from [jichu].[zulin].[heimingdan] WHERE id = '1'; 28 SELECT * from bz.cheliang.chelianginfo where chepaihao = '苏BZ2222';
mysql的事务sql
1 BEGIN; 2 UPDATE tieasygps.log set operate_desc = 'ffffffffff' WHERE id = '1'; 3 UPDATE tieasygps.yys set ms = 'fffffffffff' WHERE id = '2'; 4 UPDATE test.pp set ms = 'ffffffffffffff' WHERE id = '3'; 5 COMMIT;
只要有一个出错,都会回滚。