了解触发的一些基本概念。上一篇说的敲机房收费过程中运用外观的作用,但是比外观更直接,更简单的是触发器。下面先从度娘那里了解
基本概念
触发器(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
——修改。
运用需谨慎
在用触发器的时候,就知道触发器虽然很方便,但是确实很不好控制的。所以再看我用触发器的三个例子,其实
是可以用外观解决的,不用事事都用到触发器。当时学习触发器比较投入,所以一头扎下去,现在反思一下下,不能
太冲动。