触发器

在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一种特殊类型的存储过程,不由用户直接调用。
存储过程或触发器始终只能在一个批处理中创建并编译到一个执行计划中。

唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。

优点:
1。  触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。
2。触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。
3。与 CHECK 约束不同,触发器可以引用其它表中的列
4。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。
5。  触发器可通过数据库中的相关表实现级联更改

 

 

实例:

create trigger trg_insert
on table1
for insert
as
    declare @name varchar(50),@pwd varchar(50)
    select @name=name from inserted
    select @pwd=pwd from inserted
    insert into table2(name,pwd)values(@name,@pwd)
    --如果你有一些其它的列,则自己再增加
go

create trigger trg_update
on table1
for update
as
    declare @name varchar(50),@pwd varchar(50)
    select @name=name from updated
    select @pwd=pwd from updated
    update table1 set name=@name,pwd=@pwd where id in (select id from updated)
    --如果你有一些其它的列,则自己再增加
go

create trigger trg_insert
on table1
for delete
as
   delete table2 where id in(select id from deleted)
go

posted @ 2010-11-03 20:26  韩婉婉  阅读(260)  评论(1)    收藏  举报