浏览 2726 次
锁定老帖子 主题:Sql Server触发器的使用
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-11
1.创建视图的sql语句 1)create view 视图名 as 向视图中添加查询信息(用内外连接) 例:create view 视图名(也就是数据库名称) as select id,name,country from 表1名称 inner join 表2名称 on 表1名称.cid = 表2名称.cid 2.给表创建添加触发器(trigger) create trigger 触发器名 on 表名 for insert as select * from 表名 3.给视图添加触发器 1)create trigger 触发器名 on 视图名(也就是数据库名称) instead of insert as 例:create trigger insert_视图名(也就是数据库名称) on 视图名(也就是数据库名称) instead of insert as 2)//声明变量接收临时的数据 declare @变量1 int declare @变量2 varchar(50) declare @变量3 varchar(50) declare @变量4 int 例:declare @id int declare @name varchar(50) declare @country varchar(50) declare @cid int 3)select @变量1=字段1,@变量2=字段2,@变量3=字段3... from inserted select 新标识列=标识列 from 表2名称 where 字段3=变量3 例:select @id=id,@name=name, @country=country from inserted select @cid=cid from 表2名称 where country = @country 4)insert into 表名 values(@变量2,@变量4) insert into 视图名(也就是数据库名称) values() 例:insert into 表1名称 values(@name,@cid) 完整: 触发器 create trigger触发器名 on 表名或视图名 instead of insert 当执行insert 时 会发生以下事件 as declare @id int 局部变量1 declare @name varchar(50) 局部变量2 declare @country varchar(50) 局部变量3 declare @cid int 局部变量4 select @局部变量1=id,@2=name, @3=country from inserted select @局部变量4=cid from Country where country = @局部变量3 insert into 表名 values(@局部变量1,@ 局部变量4) 备注: 插入数据时,要进行一次判断,如无数据则先添加 执行添加: insert into UserInfo_Country values(4,'hg','中普') instead insert 当执行insert语句时数据线插入到instead表中再插 入到目录表中 deleted delete 当执行insert语句时数据线插入到instead表中再插 入到目录表中 心得: 触发器实现了向图中进行增、删、改操作 减少代码,有利于数据库的开发、设计、操作,有利于数据的查询和添加,让人 一目了然! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |