最近了解到了触发器,现在我的理解是更喜欢把触发器当成特殊的存储过程(触发器:通过对这个表的操作为依据处罚之后可以对另外的表进行一系列操作),那么此刻我就将触发器如何经营离婚事务所的过程和大家分享:
**一、经营漏洞(触发器的缺点):**
当一对夫妇有了闪离的念头,冲动之余就拿着结婚证来找触发器(离婚事务所)了;此时触发器是不会在乎你俩是否真的认定了要离婚(是否应不应该触发这个事件),只要你将结婚证给了他并大概说一些理由,他就会给你们办理离婚手续(执行符合条件之后要处罚的过程),大家都知道,离婚手续一旦办理了,那么俩人的婚姻也就不再收到法律的保护(触发器一旦处罚了事件那么就会对表进行对应的操作),这将是很危险的(现实中的离婚事务所不是这样的这里仅供理解触发器)。
所以一定要再去离婚事务所的时候想清楚了(慎用触发器);如果你没有任何思考而是一时的冲动贸然去离婚事务所办理了离婚手续,必然会后悔终身(对于触发器的过分依赖,势必影响数据库的结构,同时增加了维护的复杂程度)。
**二、经营好处(触发器优点):**
当人们到离婚事务所办理了离婚手续之后,再和别的人结婚之后再次的婚姻就会收到法律的保护(触发器通过级联引用完整性约束更好的执行更改);同时也是两个人不在一起的见证,对于自己以后的规划更加着重(触发器可以评估数据修改前后的表状态,并根据其差异采取对策)。
**三、经营范例(触发器示例):**
以下是我在机房重构充值这条线中写的触发器:有了它之后,我在编写代码的时候,直接将ReCharge_Info表中插入(下面的业务功能:insert)一条数据,不用再去返回之后再执行更新卡表了,这里直接就给我更新(下面的更新卡表:Update)了!
~~~
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">-- =============================================
-- Author: <马康>
-- Create date: <2015-5-1>
-- Description: <充值触发器>
-- =============================================
create TRIGGER [dbo].[AddSum] --创建一个名叫AddSum的触发器
ON [dbo].[ReCharge_Info] --触发器的事件发生在Recharge_Info表上
for insert --业务功能是添加新数据
as
begin
declare @CardID char(10) --声明了两个变量:CardID、AddCash
declare @AddCash int
select @CardID=CardID,@AddCash=convert(int,AddCash) from inserted --将充值表中的CardID和AddCash强制转换类型后赋值给@CardID和@AddCash
Update Card_Info set Cash =convert(int,Cash)+@AddCash where @CardID=CardID --在卡表里更新余额
end</span></span>
~~~
**四、经营收获(运用触发器的收获):**
这里需要注意的是更新卡表中的AddCash字段的时候需要看清楚是什么类型;触发器在触发前的表中建立,建立的时候用:Create,如果要是修改触发器应该用:Alter。
通过不断的学习总结才能在以后的路上走的更加的坚实,加油!
本文如有错误之处还望指正!