浪潮软件数据库触发器简介
问题描述:
数据库触发器简介
产生原因:
解决方法:
/*触发器有三种类型:插入触发器,删除触发器,修改触发器,依次介绍*/
/*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插件自动生成