触发器概念

触发器概念

SQL Server触发器分为DML触发器和DDL触发器这两种。

  • DML触发器,执行INSERT、 DELETE 、UPDATE语句时触发。DML触发器可以实现数据的完整性、多个表间数据的一致性等。比如,实现外键的功能,当向CJB中插入记录时,保证学号是XSB表中已存在的;再如,可通过对XSB表定义DELETE触发器,实现在XSB表中删除一个学生时,同时删除CJB表中所有该学生的记录。
  • DDL触发器,只由T-SQL语句触发。是SQL Server 2005新增的功能,也是由相应的事件触发,但DDL触发器在执行CREATE、ALTER、DROP等语句时触发。

在触发器中可以使用两个特殊的虚拟表inserted和deleted:

  • inserted表存放新增的记录
  • deleted表存放被删除的记录

Update操作时:新的记录存入inserted表,旧的记录存入deleted表。

##创建DML触发器(掌握)
create trigger 触发器名 on 表名/视图名
{ for | after | instead of }
{ insert [,] | update [,] | delete }
as
begin
	触发器需要执行的逻辑
end;

##创建DDL触发器(了解)
create trigger 触发器名 on 数据库作用域/服务器作用域
{ for | after }
{ 事件类型 }
as
begin
	触发器需要执行的逻辑
end;
事件类型:CREATE_对象类型、DROP_对象类型、ALTER_对象类型 
对象类型:DATABASE、TABLE、VIEW等

触发器练习

创建DML触发器:当删除XSB表中的一条学生记录时将CJB表中该学生的相应记录也删除

create trigger T_XSB_DELETE on XSB 
after 
delete
as 
begin
	delete from CJB where 学号 in (select 学号 from deleted)
end;


触发DML触发器:
delete from XSB where 学号 = '081101';
删除DML触发器:
drop trigger T_XSB_DELETE;


posted on 2021-01-15 16:13  catchsa  阅读(323)  评论(0)    收藏  举报

导航