什么是触发器
在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
常见的触发器一共有三种 Insert, Update,Delete
为什么要用触发器
用触发器和存储过程差不多,减少了程序检索数据库的时间
Insert触发器
当我的退卡表插入一条记录的时候我账单汇总表里的 支出(expense)会在原来的基础上增加新退卡的金额
Create trigger [dbo].[CountCancelCard] ------触发器名称
on [dbo].[T_CancelCard]--------------------建立触发器的表名
after insert--------------------------------------什么类型的触发器
as
update T_CheckOut set expense=expense + inserted.cash from T_CheckOut,inserted-----需要触发的内容
Delete触发器
两个表,一个是学生的信息表,一个是学生的借书记录表
当我删除学生信息的时候,同时删除该学生的上下机记录
Create trigger DeleteStuInfo --------------触发器名称
On T_StuInfo[dbo].[T_StuInfo]
for Delete
As
Delete T_LineLog
From T_LineLog L ,T_StuInfo S
Where L.StuNo=S.StuNo
Update触发器
如果更新充值表中的金额,在汇总账单中更新当天的净利润
Create trigger [dbo].[T_CountProfit]
on [dbo].[T_LineLog]
for update
as
if UPDATE(spendCash) ----------------------如果对表LineLog表的消费时间进行修改
begin
update T_CheckOut set profit=profit + inserted.spendCash----------执行这条语句
from T_CheckOut,inserted
where date=date
end