第5章T-SQL程序设计.pptVIP

  • 39
  • 0
  • 约2.83万字
  • 约 137页
  • 2017-07-17 发布于四川
  • 举报
第5章T-SQL程序设计

2、 delete 触发器 例:建立delete 触发器tric_del ,该触发器防止删除学生表S中IS系的学生记录 CREATE TRIGGER trig_del ON S after delete AS Begin if exists(select * from deleted where sdept=is) begin raiserror(不能删除该系的记录,16,2) rollback end End UPDATE Statement to a table with an UPDATE Trigger Defined UPDATE member SET member_no = 10021 WHERE member_no = 1234 UPDATE Statement logged as INSERT and DELETE Statements member member_no lastname firstname middleinitial photograph 10020 10021 10022 10023 Anderson Barr Barr Anderson Andrew Andrew Bill Bill A R NULL B ~~~ ~~~ ~~~ 1234 Barr Andrew R ~~~ inserted 10021 Barr Andrew R ~~~ deleted 1234 Barr Andrew R ~~~ 3、 update 触发器 例:建立一个触发器Tric_upd,当修改学生表中的学号时,同时修改该同学选课记录中的学号 3、 update 触发器(续) CREATE TRIGGER TrgUpd ON S After UPDATE AS update SC set SC.sno=inserted.sno from SC ,inserted,deleted where SC.sno=deleted.sno 3、 update 触发器(续) 修改前数据: 修改后数据: instead of 触发器是代替触发操作执行 一个表或视图可以创建After触发器,但只能创建一个instead of 触发器 4、 instead of 触发器 CREATE TRIGGER Trig2 ON S1 instead of insert AS select * from S1 insert s1 values(95007,李林,男,18,cs) CREATE TRIGGER Trig3 ON S1 instead of update AS raiserror (不能对S1表修改,16,2) 消息50000,级别16,状态2,过程Trig3,第4 行 不能对S1表进行修改 update s1 set sdept=IS where sno=95007 4、 instead of 触发器 instead of 触发器是代替触发操作执行 5、DDL 触发器 当数据库中发生create/drop/alter table事件时,则会触发DDL触发器。 use school go CREATE TRIGGER safe ON database after drop_table,alter_table AS begin raiserror (不能对S1表进行修改,16,2) rollback end go drop table s1 消息50000,级别16,状态2,过程safe,第5 行 不能对S1表进行修改 消息3609,级别16,状态2,第1 行 事务在触发器中结束。批处理已中止。 1、查看触发器——两种方式: 1)使用SQL-Server管理器查看 2)使用系统存储过程查看 Sp_help:查看触发器一般信息 Sp_helptext ‘触发器名称‘:查看触发器正文 Sp_depends ‘触发器名称‘:查看触发器所引用的表或指定表所涉及的所有触发器。 5.7.3 管理触发器 2、修改触发器——两种方式: 1)使用SQL-Server管理器修改 2)使用 alter trigger语句修改 3、删除 触发器——两种方式: 1)使用SQL-Server管理器修改 2)使用 drop trigger语句修改 格式: Drop Trigger 触发器名 ON 表名 5.7.3 管理触发器 4、启用或禁用触发器 如果数据表中存在触发器,用户在编辑数据表时会同时关联多个数据表,如果用户只想编辑当前数据表,则必须禁用触发器 1)使用SQL-Server管理器 2)使用 alter t

文档评论(0)

1亿VIP精品文档

相关文档