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表中再插
入到目录表中
心得:
触发器实现了向图中进行增、删、改操作
减少代码,有利于数据库的开发、设计、操作,有利于数据的查询和添加,让人
一目了然!
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表中再插
入到目录表中
心得:
触发器实现了向图中进行增、删、改操作
减少代码,有利于数据库的开发、设计、操作,有利于数据的查询和添加,让人
一目了然!