【机房重构】—触发器经营离婚事务所

最近了解到了触发器,现在我的理解是更喜欢把触发器当成特殊的存储过程(触发器:通过对这个表的操作为依据处罚之后可以对另外的表进行一系列操作),那么此刻我就将触发器如何经营离婚事务所的过程和大家分享:

一、经营漏洞(触发器的缺点):

当一对夫妇有了闪离的念头,冲动之余就拿着结婚证来找触发器(离婚事务所)了;此时触发器是不会在乎你俩是否真的认定了要离婚(是否应不应该触发这个事件),只要你将结婚证给了他并大概说一些理由,他就会给你们办理离婚手续(执行符合条件之后要处罚的过程),大家都知道,离婚手续一旦办理了,那么俩人的婚姻也就不再收到法律的保护(触发器一旦处罚了事件那么就会对表进行对应的操作),这将是很危险的(现实中的离婚事务所不是这样的这里仅供理解触发器)。

所以一定要再去离婚事务所的时候想清楚了(慎用触发器);如果你没有任何思考而是一时的冲动贸然去离婚事务所办理了离婚手续,必然会后悔终身(对于触发器的过分依赖,势必影响数据库的结构,同时增加了维护的复杂程度)。

二、经营好处(触发器优点):

当人们到离婚事务所办理了离婚手续之后,再和别的人结婚之后再次的婚姻就会收到法律的保护(触发器通过级联引用完整性约束更好的执行更改);同时也是两个人不在一起的见证,对于自己以后的规划更加着重(触发器可以评估数据修改前后的表状态,并根据其差异采取对策)。

三、经营范例(触发器示例):

以下是我在机房重构充值这条线中写的触发器:有了它之后,我在编写代码的时候,直接将ReCharge_Info表中插入(下面的业务功能:insert)一条数据,不用再去返回之后再执行更新卡表了,这里直接就给我更新(下面的更新卡表:Update)了!

<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)[email protected] where @CardID=CardID --在卡表里更新余额
end</span>

四、经营收获(运用触发器的收获):

这里需要注意的是更新卡表中的AddCash字段的时候需要看清楚是什么类型;触发器在触发前的表中建立,建立的时候用:Create,如果要是修改触发器应该用:Alter。

通过不断的学习总结才能在以后的路上走的更加的坚实,加油!

本文如有错误之处还望指正!

时间: 2024-12-09 13:01:40

【机房重构】—触发器经营离婚事务所的相关文章

机房重构(4)——触发器的使用

上篇文章<机房重构(3)--存储过程>介绍了存储过程的使用,接下来介绍一下触发器的使用.说到触发器,我们并不陌生,我们学习过程中涉及到很多相关的知识,但是欠缺的实践应用.通过这次机房收费,对触发器有了进一步的理解. 1.简介 触发器也是一种与表事件相关的特殊的存储过程.由事件来触发,当对一个表进行操作(insert,delete,update)时就会激活它执行.经常用于加强数据的完整性约束和业务规则等.它与存储过程的区别是触发器不能执行EXCUTE语句调用,而是在用户执行Transact_SQ

机房重构-完结篇

机房重构已经结束了,自从软考开始,光顾着准备软考和三级网络等级考试就没来得急总结.软考一开始,突然觉得时间好少,时间过得好快.这节奏,有点飕飕的. ---------------------技术总结: 熟悉了对Visual Studio这一开发环境的使用,深入了解了VB.net语言基础有了一定的认识并且学会使用.这一次使用三层架构,利用分分层的思想,深入理解了各层的职责.代码规范,这一次再敲代码的时候先学了一下代码规范,也把头文件注释设计好,让自己的代码漂亮一点. 最终的要思想还是面向对象,根据

机房重构——视图

视图.存储过程.触发器等等早就听说过,却没有真正接触过,一直处在一个以后再说的状态中,逃是逃不掉了. 机房重构,重构出了什么?留着这个疑问.重构完以后再做总结. 视图:在SQL中,外模式一级数据结构的基本单位是视图,就是从若干个基本表和(或)其他视图构造出来的表.其实就是一张虚表. 注意:在使用视图的时候,应当提前设置好关联表的主外键. 在机房收费系统里功能之一,学生查看余额时,用到了两张表的内容,Card表里的状态和余额,其他信息都来自学生表. 视图的创建和删除: 方法一:使用SQL语句创建视

个人机房重构总结

个人版的机房重构花费了一个月的时间,也算是完成了.现在整理一下三层机房收费系统里面的小问题.对于使用三层架构的机房收费系统来说,数据库的设计是一个重点.但是三层架构的小实例也是经典. 为什么很多人在开始项目之后,都无从下手? 因为三层的那个实例没有看懂(并不是没有实现).三层架构的登陆实例,实现不是目的,我们就是要从这个实例中学习,三层的是如何划分,并且是如何调用的. 机房重构的准备工作:     在学习完三层架构理论之后,紧接着的项目就是个人版机房收费系统. 对于三层结构的登陆实例,如果可以理

【机房重构】SQL之视图

最近在重构机房收费系统,越往后就会越感觉到这里更多的是对之前学过知识(数据库,设计模式)的一种应用和回顾.比如在登录功能中用到了抽象加反射,在学生下机中,我们可以用触发器来同时更新两个表.这里就先说一下视图的使用,关于视图的有点和作用百度上有很多答案,在此不再赘述. 视图定义: 自己理解:在涉及到多张表的操作的时候就可使用视图.这样可以避免与数据库直接联系.并且当你更新数据库数据时,就会自动更新视图中的数据,方便以后查询. 百度百科:计算机数据库中的视图是一个虚拟表,其内容由查询定义.同真实的表

机房重构---我们“重构”出了什么?

机房重构立即就要结束了,在这"第三个"系统结束的时候,有必要思考一下我们重构的目的了. 或许有人说,还有什么目的呀,不就是编程语言换成了.Net,做出来,调完bug,能执行就得了呗.这么浮夸的日子里,还叫什么劲啊? 对于有这样的想法的人,我必须道一声:您(白)辛苦了 ! 不管做什么事,没有一点总结性思考是无法进步的. 我以下的一些重构论述或者说反思性总结也存在很多不足,希望大家多多指正,在此先致谢! 本文将从五个方面论述一下这次的重构系统,各自是系统架构.UML图指导.设计模式应用.数

【机房重构】总结

机房收费个人版算是磕磕绊绊完毕了,这里话不多说,收获的东西,遇到的困难.仅仅有自己才干懂得.总结一下重构过程中的问题.不足及学到的东西. 一.验收问题 那天紧赶慢赶的完毕及功能实现,就想着急的找师父给看看.结果师父正好有事.就找人给自己点点看看有什么不足的地方.辛亏那是师父有事啊.出现的错误非常多都是由于自己考虑不全面,就是没有做好为人民服务. 这里基本的总结几点验收时师父的指点和自己发现的问题. 1.SQL注入的问题.能够去了解一下 2.datagridview中字段直接显示了数据库中的字段,

【机房重构】——存储过程(Stored Procedure)

[前言] 在学习数据库知识时,就曾经接触过存储过程,当时只是如蜻蜓点水一般,短暂的停留,并没有留下什么印象,在进行机房重构学习过程中,又重新认识了存储结构,从开始的抵触,不想用到后来逐渐了解,学着使用,思路越来越清晰,真正去做了才发现了其中的乐趣:常常说学习需要多总结,现在就是在积累,每一次的收获都要整理记录,才能留下深刻的印象,下面就来学习一下存储过程的知识吧. [存储过程的概念] 在采用客户机/服务器(C/S)计算模式的数据库系统中,很多工作可以在客户端完成,也可以在服务器端完成,数据库除了

[机房重构]UML图(包图、类图、用例图、时序图)

机房重构画图是一个非常重要的一个阶段,机房重构之前也画过UML的图,但是这一次与上一次不同,这一次有分层的思想在里面. 包图 之前三层的时候各层之间的传递很清晰,包图也很容易就画出来了,先来看之前三层的包图.通过实体将输入的信息从U层传入B层,同时通过实体将信息从D层传入B层,B层进行判断,通过实体将结果返回给U层. 之前的三层不能很好的实现低耦和的思想,并且我们学习了设计模式,要继续进行分层,进行七层的编写.之前不太理解,看大家的博客,知道在U层和B层之间加入了外观模式,降低U层和B层之间的耦