网站介绍:
以前数据库操作,我是很少用事务的,最近做一个项目,发现偶尔总是少一些数据没有写入到数据库,也没有报错误,看了半天,也不知道是什么原因,后来把一条insert语句分成两条写,就好了,数据就没有丢失了,怀疑和写入的字段太大有关系。后来考虑还是不保险啊,就直接用事务了..
事务完整示例1begin transaction tran_bank;declare @tran_error int;set @tran_error = 0; begin try -- sql 语句 set @tran_error = @tran_error + @@error; -- sql 语句 set @tran_error = @tran_error + @@error; end try begin catch print "出现异常,错误编号:" + convert(varchar, error_number()) + ", 错误消息:" + error_message(); set @tran_error = @tran_error + 1; end catchif (@tran_error > 0) begin --执行出错,回滚事务 rollback tran; print "转账失败,取消交易"; endelse begin --没有异常,提交事务 commit tran; print "转账成功"; endgo
事务完整示例2begin transactioninsert into [存取记录表] ([账号],[存取类型], [存取金额]) values(@FromAccountNo, -1,@MoneyCount)if @@error 0begin rollback transaction--发生错误则回滚事务,无条件退出l returnendinsert into [存取记录表] ([账号],[存取类型], [存取金额]) values(@ToAccountNo, 1,@MoneyCount)if @@error 0begin rollback tran returnendcommit transaction --两条语句都完成,提交事务
事务完整示例3begin tran --sql批量操作语句if (@@error!=0)begin rollback tran return(1)endelsebegin commit tranend
事务执行示例4
begin transaction stu2 insert into student values(2008110101,'张三','男','黑龙江齐齐哈尔',1987-12-7)if @@error=0begin print '添加成功' update grade set english=english+10 where sid=2005120102 commit transactionend elsebegin print'添加失败' rollback transactionend
begin transaction stu1 insert into student values(2007110101,'政委','女','黑龙江佳木斯',1988-2-11) save transaction savepoint del ete fro m student where sid=2007110101
rollback transaction savepoint
commit tran
go
© 本文是原创,所属权:酷站外链。如需转载,请署名并注明出处:https://daohang.aizhancloud.cn/11783.html
网站评估:
"sql事务示例语句分析参考" 于 2023-02-10 发布在 酷站外链,并永久保存在 酷站外链 的网站库内,本站只保留 "sql事务示例语句分析参考" 基础信息和域名地址,信息均为自动获取如与实际不符清自行斟酌。
本站不提供评论与估价,网站真正的价值在于它是否为用户的需求带来一点的解决方案,并对社会发展起到一定的贡献和促进。
"sql事务示例语句分析参考" 的实际价值还取决于各种因素的综合分析,以网站的流量或收入多少来衡量站点价值当然不够准确。
酷站外链提供 "sql事务示例语句分析参考" 在搜索引擎的基础数据(站点权重值)可为您能准确评估其网站价值做出一定的参考。