`
阿尔萨斯
  • 浏览: 4189066 次
社区版块
存档分类
最新评论

触发器

 
阅读更多


触发器(trigger)通常是指能启动其他设备的设备。在数据库里,触发器则是一类由事件驱动的特殊过程,该事件可以触发其他事件或一系列事件。通过数据库系统中的触发器机制,无需用户操作,系统就能够对内部或外部产生的事件自动做出响应。

除实现参照完整性以外,触发器还具有许多其他的功能:1)强化约束 2)跟踪变化 3)级联运行 4)存储过程的调用

触发器由三部分组成:1)事件:插入、删除、修改等引发触发器的操作 2)条件:引发触发器的条件 3)动作:引发触发器后的行为

触发事件包括表中行的插入、删除和修改,即执行insert、delete、update语句。除此以外,还可以指定其他条件为触发条件,如对某字段的修改。触发器的动作通常是一系列SQL语句。

1)创建触发器

create trigger trigi
on customers
for insert
as
begin
  declare @cols int
  set @cols=(select count(*) from customers)
  print 'customers表行数已增加,现在一共是'+space(1)+ltrim(str(@cols)+space(1)+'行。')
end
create tigger trig3
on reg_members
instead of insert
as
begin
  declare @cno_tmp char(5)
  declare @cname_tmp varchar(6)
  set @cno_tmp=(select cno from inserted)
  set @cname_tmp=(select cname from inserted)
  insert into customers values
 (@cno_tmp,@cname_tmp,null,null,'注册会员',null)
end
create trigger trig3
on customers
after insert as
if(select count(*) from customers=100)
begin
  update customers set crank='金卡会员' where cno=(select cno from inserted)
  print '您是第100名注册用户,作为幸运者,系统已将您升级为金卡会员。'
end


2、触发器的更改与删除

alter trigger trig3
on customers
after insert as 
if(select count(*) from customers)=1000
begin
  update customers set crank='VIP' where cno=(select cno from inserted)
  print '您是第1000名注册用户,作为幸运者,系统已将您升级为VIP'
end
drop trigger trig3 



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics