【机房收费系统】——触发器

上一篇说的敲机房收费过程中运用外观的作用,但是比外观更直接,更简单的是触发器。下面先从度娘那里了解

了解触发的一些基本概念。


基本概念


触发器(trigger)是SQL Server提供给程序员和数据分析员来保证数据完整性的一种方法。它的执行不是由程

序调用,也不是手工启动,而是由事件来触发的。

它主要用户强制服从复杂的业务规则或要求。如:可以根据客户当前的账户状态,控制是否允许插入新订单。

触发器是一中特殊的存储过程,但是它与存储过程的唯一区别是:触发器不能执行EXECUTE语句调用,而是在用

户执行T-SQL语句时自动触发执行。


应用实例


在机房中,在几个业务中运用到了触发器:1、充值时更新卡表与学生表的余额;2、注册学生时将学生的信息添

加到卡表;3、退卡时更新卡表中的使用状态。

下边就第一条进行代码演示:

CREATE TRIGGER [dbo].[recharge] '创建一个名叫recharge的触发器
ON [dbo].[Recharge_Info] '触发器的事件发生在充值表上
for insert '业务功能是添加新数据
as 
begin
declare @admoney numeric(18,0)  '声明了两个变量:@admoney,@cardNO
declare @cardNo varchar(50)

select @admoney=AddMoney,@cardNo=CardNo from inserted '将充值表里的AddMoney,CardNo分别赋给@addmoney和@cardNo
update Card_Info set Balance =Balance +@admoney where @cardNo =CardNo   '在卡表里更新余额
update Student_Info set Cash =cash+@admoney where @cardNo =CardNo    '在学生表里更新余额

end


创建一个触发器时使用CREATE,一旦创建好了之后再运行时会有提示出现。一个简单的原理,已经已一个名字创

建好了,再以相同的名字创建,当时是会出现问题的,所以如果是想修改当前触发器,需要将CREATE改成:Alter

——修改。


运用需谨慎


在用触发器的时候,就知道触发器虽然很方便,但是确实很不好控制的。所以再看我用触发器的三个例子,其实

是可以用外观解决的,不用事事都用到触发器。当时学习触发器比较投入,所以一头扎下去,现在反思一下下,不能

太冲动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值