《SQL Server数据库实用案例教程》 实验14-事务处理 参考代码-不要先发学生.docx





《《SQL Server数据库实用案例教程》 实验14-事务处理 参考代码-不要先发学生.docx》由会员分享,可在线阅读,更多相关《《SQL Server数据库实用案例教程》 实验14-事务处理 参考代码-不要先发学生.docx(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、提示:不要把答案先发给学生,实验结束后再公布答案。要让学生先自己思考做题,老师对学生不会的题目适当提示,一题题解决困惑。实验14事务处理参考代码/*继续使用实验创建的银行储蓄数据库,客户信息(customerinfo)表、账户信息 (accountinfo)表、交易信息(transInfo)表三个表的表结构见表-18表-20。*/(1)题修改实验11创建的转账存储过程,使用事务-先查看表中数据代码: select from accountinfo select from transInfo-创建存储过程的代码,加入了事务处理,将四个操作作为一个事务-为了验证事务的效果,特意将判断取款账号余额是
2、否符合的语句注释上 create proc p_zz_tranzhl char(19), mm char(6),一取款账号和密码zh2 chart 19), je decimal( 20,2),-存款账号和转账金额mess varchar(lOO) output-输出操作结果beginif not exists(select accountID from accountinfo 一判断取款账号是否正常 where accountID = zhl and accountstate =正常)beginselect mess二转出账号+zhl+不存在,或已经挂失!,returnendif not e
3、xists(select * from accountinfo-判断取款密码是否正确where accountID = zhl and password = mm)beginselect mess=转出账号密码错误!1returnendif not exists(select accountID from accountinfo-判断存款账号是否正常where accountID = zh2 and accountstate =正常)beginselect mess廿转入账号+zh2+不存在,或已经挂失!1returnenddeclare ye decimal1 20,2)select ye
4、= accountMoney from accountinfo 一查询取款账号余额where accountID = zh 1 if (ye je + 1)-判断取款账号余额是否符合 begin select mess廿余额不足,请重新输入转账金额! return endbegin tran-开始事务,保证多个操作同时成功或失败INSERT INTO transInfo(accountID, transType, transMoney)VALUES(zhl;支取:je)-交易信息表transInfo插入存款记录if error!= 0 begin select mess=转账失败!账号:+zh
5、l+:转出出错, rollback return end update accountinfo set accountMoney = accountMoney - je WHERE accountID = zhl 取款卡减少余额 if error!= 0 beginselect mess二转账失败!账号:4zhl+;更新余额出错, rollback return endINSERT INTO transInfo(accountID, transType, transMoney)VALUES(zh2:存入;je)-交易信息表transInfo插入存款记录if error!= 0 begin se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server数据库实用案例教程 SQL Server数据库实用案例教程 实验14-事务处理 参考代码-不要先发学生

限制150内