浪潮软件数据库触发器简介

浪潮软件数据库触发器简介

问题描述:
   数据库触发器简介
产生原因: 
解决方法:
   /*触发器有三种类型:插入触发器,删除触发器,修改触发器,依次介绍*/
/*1·插入触发器:在指定的表上(On关键字后面的表)做insert操作的时候才会触发的触发器。
插入触发器涉及到一个系统表inserted,它存储了刚刚插入进来的一行数据,inserted表的结构
和触发器所在表的结构一模一样,针对下面触发器而言,inserted与WE1000的结构一模一样,
只是Inserted表只保存一条数据,就是新的数据*/
Create Trigger Tri_WE1000_Insert –创建触发器,并制定触发器名称为”Tri_WE1000_Insert”
On We1000 –On 关键字指定触发器在哪个表上
For Insert –For 关键字指定在WE1000上做什么操作时才会触发这个触发器
As –As 后面的内容指定触发器内容,即插入数据到WE1000时自动执行的SQL语句集合
Insert Into We_Inserted (A,B,C,D)
Select WE1000_A,WE1000_B,WE1000_C,WE1000_D From Inserted

/*2·删除触发器:在指定的表上(On关键字后面的表)做Delete操作的时候才会触发的触发器。
删除触发器涉及到一个系统表Deleted,它存储了刚刚删除的一行数据,Deleted表的结构
和触发器所在表的结构一模一样,针对下面触发器而言,Deleted与WE1000的结构一模一样,
只是deleted表只保存一条数据,就是新删除的数据*/
Create Trigger Tri_WE1000_Delete –创建触发器,并制定触发器名称为”Tri_WE1000_Delete”
On We1000 –On 关键字指定触发器在哪个表上
For Delete –For 关键字指定在WE1000上做什么操作时才会触发这个触发器
As –As 后面的内容指定触发器内容,即插入数据到WE1000时自动执行的SQL语句集合
Insert Into We_Deleted(A,B,C,D)
Select WE1000_A,WE1000_B,WE1000_C,WE1000_D From Deleted

/*2·更新触发器:在指定的表上(On关键字后面的表)做Update操作的时候才会触发的触发器。
更新触发器涉及到两个系统表:Inserted和Deleted,更新操作可以看作是先删除老数据,再插入新的数据。
Inserted存储了新的一行数据,可以看作是更新之后的数据,Deleted存储更新前的数据,即存储了老数据。
这两个表与触发器所在表的结构一模一样,针对下面触发器而言,inserted和Deleted与WE1000的结构一模一样,
只是deleted表保存一条老数据(更新前的数据),inserted保存更新后的数据(修改后的数据)*/
Create Trigger Tri_WE1000_Update –创建触发器,并制定触发器名称为”Tri_WE1000_Update”
On We1000 –On 关键字指定触发器在哪个表上
For Update –For 关键字指定在WE1000上做什么操作时才会触发这个触发器
As –As 后面的内容指定触发器内容,即插入数据到WE1000时自动执行的SQL语句集合
–获取更新后的数据
Insert Into We_Inserted(A,B,C,D)
Select WE1000_A,WE1000_B,WE1000_C,WE1000_D From Inserted
–获取更新前的数据
Insert Into We_Deleted(A,B,C,D)
Select WE1000_A,WE1000_B,WE1000_C,WE1000_D From Deleted

/*总结:触发器是一种特殊的存储过程,只是它是被动执行的;触发器涉及两个系统后台表:inserted和deleted,分别存储
新数据和老数据,灵活运用这两个系统表,写触发器很简单*/

原创文章,转载请注明: 转载自浪潮888博客

本文链接地址: 浪潮软件数据库触发器简介

文章的脚注信息由WordPress的wp-posturl插件自动生成



This entry was posted in 浪潮文档. Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>