机房重构之退卡——触发器增强版
来源:互联网 发布:网络考试系统破解版 编辑:程序博客网 时间:2024/06/16 00:04
I have to say that success always make people happy
之前自己在退卡窗体的时候,发现自己需要用到触发器,然后就在网上荡阿荡的,找到了合适的代码照着敲了,遇到了一点问题,但是立马解决了,在SQL里面也执行成功了,我天真的以为在D层写一句(下面的那句)delete语句就可以同时删除cardbalance表里面的卡和在cancelcard表中增加一条记录,没想到怎么也不成功,触发器似乎没被触发一样,后来在网上找问题啊找问题,最终才发现,还是得看懂触发器每段话的意思。
string sql = "delete from CardBalance where CardNumber=@CardNumber";
如果不看懂触发器的意思就写,那么就是容易出错的,我上一篇的博客基本是对的,但是造成我的触发器没有触发成功的原因就是我的表写错了,下面我给我自己分析一下哈,后退!我要开始表演了
然后还有一点值得注意,就是下面这点:
That‘s all……of course not the end
接下来就说一下为什么是增强版了
我终于弄成功之后发现,如果我只删除了Card表中的卡的记录和在销卡记录表中添加一条信息,那么就会出现信息之间的错误,容易读脏数据。因此必须在增加销卡记录信息的时候再删除Student表和上下机表中的相应记录,因此在SQL中写的触发器还要增加一段话,下面是完整的代码
USE[Jifang]Go/******boject:Trigger [].[] Script Date : ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO/******CREATE TRIGGER [dbo].[myTrigger]******/ALTER TRIGGER canceltrigger --创建触发器,触发器的名字为 ON [dbo].[CardBalance]AFTER DELETEASBEGIN --声明变量 declare @CardNumber int, @StuNumber varchar(MAX), @StuName varchar(MAX), @Balance money, @CancelTime varchar(MAX), @CancelDate varchar(MAX)select @CardNumber=CardNumber FROM deleted select @StuNumber =StuNumber FROM deleted select @Balance =Balance FROM deleted set @CancelDate = CONVERT (date ,GETDATE(),111) --获取当前日期set @CancelTime = CONVERT (time ,GETDATE (),108)--获取当前时间if @@ROWCOUNT >0 --受影响的行数BEGIN Insert into dbo.CancelCard (CardNUmber ,StuNumber ,Balance ,CancelTtime ,CancelDate ) values (@CardNumber ,@StuNumber ,@Balance ,@CancelTime ,@CancelDate ) delete from dbo.OnOffline where CardNumber=@CardNumber ; delete from dbo .Student where CardNum =@CardNumber ; ENDEND
That's all and goodbye
阅读全文
0 0
- 机房重构之退卡——触发器增强版
- 机房重构——退卡
- 机房收费系统退卡之触发器
- 重构——退卡——触发器试验
- 【机房重构】——触发器
- 【机房重构】——触发器
- 【机房重构】结账—触发器应用
- 机房重构(4)——触发器的使用
- 【机房重构】——存储过程和触发器
- 【机房重构】—触发器经营离婚事务所
- 机房收费系统——退卡
- 机房收费系统——退卡
- 【机房重构】——视图,触发器,存储过程的使用
- 机房重构—七层包图
- 机房重构—注册
- 机房收费系统之退卡窗体
- 机房收费系统之 退卡流程
- 机房收费系统之退卡
- [other]电脑知识
- Mysql的正则匹配与常用匹配符_Mysql必知必会学习记录01
- 算法第15周Wildcard Matching[hard]
- Leetcode 740. Delete and Earn
- C++primer学习 12.17
- 机房重构之退卡——触发器增强版
- 02nodeJS中使用的模块化规范commonJS
- myeclipse的com.mysql.jbdc.Driver异常和java.lang.NullPointerException异常解决方法
- Python实现--贪心算法与活动安排问题
- 制作一个购物车函数
- 关于OSG 帮助文档。
- App启动那点事整理啊
- 页面中文乱码的处理
- 处理 1 counts of IllegalAnnotationExceptions Class has two properties of the same name "ITEM"