论坛首页 综合技术论坛

Sql Server触发器的使用

浏览 2725 次
精华帖 (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表中再插

入到目录表中

       
心得:
触发器实现了向图中进行增、删、改操作
减少代码,有利于数据库的开发、设计、操作,有利于数据的查询和添加,让人

一目了然!


论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics