视图的工作方式与表很相像,可以成功的堆视图执行INSERT、UPDATE以及DELETE语句。不过,在通过视图改变数据是,要记住以下内容。

      如果视图包含连接,在大多数情况下,除非使用INSTEAD OF 触发器,否则不能岁数据执行INSERT或者DELETE操作。有时(只要只更新来自单个表的列),UPDATE可以不使用INSTEAD OF触发器来工作,但是这需要一些规划,否则很快会遇到问题。

      如果视图仅仅引用单个表,那么在表中所有必需字段都在视图中或者有默认值的情况下,可以通过使用视图二不用INSTEAD OF触发器来对数据执行INSERT操作。及时对于单个表的视图来说,如果有一列没有出现在不具有默认值的视图中,那么如果想要允许INSERT操作,必须使用INSERT OF触发器。

      可在有限范围内限制是否可以在视图中插入或更新的内容。

 

use test
go
create view cust_vw
as
select cust,Version,Sys
from Apple
select * from cust_vw
select * from Apple

 

use test
go

 

create view oooo_vw
as
select info,
bbb,
kkk*lll as total,
ttt as date
from Apple
inner join Pumkin
on Apple.info = Pumkin.aaa
inner join Orange
on Pumkin.aaa = Orange.lll

exec sp_helptext oooo_vw


select * from sys.sql_modules
where object_id = object_id('dbo.oooo_vw')

 

posted on 2012-07-19 14:54  Pumkin  阅读(142)  评论(0编辑  收藏  举报