在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示:
房型表:RoomType
首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rTypeId
分析这两个表,我们会发现这样一个问题:在房间表和房型表管理中,当我们修改或者删除一个RoomType表,对应的Room表我们也要做修改和删除,那么我们怎么解决这个问题呢?首先可以在数据库中设置级联删除,或者利用触发器也可以解决、、、这些方法都有一定的弊端,在实际开发中,我们会采取使用事务来解决这个问题,这种方法简单而且开发效率高,容易维护。
要求:在删除RoomType的同时把Room表中存在该房型的也删除.
思路:在删除RooType的时候,我们通过RoomType.rTypeId=Room.rTypeId找到Room中存在该房型的记录,把也它删掉。
说明:删除不是把整条记录从数据库删除,是将数据标识改为1,0是代表未删除。
下面介绍删除的存储过程:
代码:
ALTER procedure [dbo].[usp_DelToomType] --创建删除房型的存储过程 @rTypeId int --房型参数 as begin transaction --开始事务 declare @error int --定义一个变量标识错误号 update RoomType set rTypeIsDel=1 where rTypeId=@rTypeId --根据条件删除房型,rTypeIsDel=1标识删除,0标识未删除 set @error+=@@ERROR if(@error<>0) --不等于0说明这一句执行出现错误 rollback transaction --事务回滚 update Room set roomIsDel=1 where rTypeId=@rTypeId --根据条件删除房间 set @error+=@@ERROR if(@error<>0) --不等于0说明这一句执行出现错误 rollback transaction --事务回滚 else commit transaction --提交事务
最后,数据层直接调用存储过程的方法即可完成删除房型的同时把存在该房型的房间也删除。
标签:
MSSQL,存储过程
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“MSSQL事务的存储过程”评论...
更新动态
20240524
20240524
- 《范玮琪15CD合集》[WAV+CUE][14.8G]
- 陈慧娴《BackToPriscilla30周年演唱会2CD》[WAV+CUE]
- 【乡村音乐】约翰尼·李《七月十三日、情感》2CD.2024[FLAC+CUE]
- 【发烧唱片】丹拿示范盘《为歌所吻》2014[FLAC+CUE]
- 颜人中.2022-查无此人【中视鸣达】【FLAC分轨】
- 苏慧伦.1996-LEMON.TREE【滚石】【WAV+CUE】
- 萧福德.1995-春秋大梦【飞碟】【WAV+CUE】
- 宇多田光-TheFirstLove【Hi-Res】FLAC
- KOKIA吉田亚纪子-2009-AKIKO∞KOKIA~balance~[FLAC]
- 中国人民解放军军乐团-《28首世界军乐精品大联奏(二)》[FLAC]
- 蓝岚《天空》人声与钢琴的对话[WAV分轨][464M]
- 群星《荒野彪客DTS》中国第一试音天碟 [DTS][440M]
- 贵族音乐《颂钵减压SPA 空灵疗心音乐精选》[320K/MP3][146.49MB]
- 群星.2005-男人魅【TVB.MUSIC】【WAV+CUE】
- 谢采妘.1999-旧情绵绵2CD【南方】【WAV+CUE】