- 1、本文档共137页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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)