修改视图中的数据能否改变该视图所对应的表中的数据
本人刚接触SQL,不知道修改视图中的数据能不能同时改变该视图所对应的表中的数据,在百度上查了一下,有的说能,有的说不能,晕啊。
[解决办法]
SQL2000不行,
SQL2008可以.
建议LZ测试一下不就知道了吗.
[解决办法]
没有2005的环境,但是2008试过是可以的
[解决办法]
2005以后的好像都 可以查看,修改,删除,
视图对应的 操作和操作表的语句是一样的,只不过对象由表改为视图而已。
[解决办法]
--1.建表
select * into temp_1
from sys.objects
select * into temp_2
from sys.tables
--2.创建视图
create view dbo.v_temp_1
as
select * from temp_1
go
--3.通过视图删除数据
delete from dbo.v_temp_1
/*
(153 行受影响)
*/
select * from temp_1
/*
(0 行受影响)
*/
--4.再创建视图
create view dbo.v_temp_join
as
select t2.*
from temp_1 t1
inner join temp_2 t2
on t1.object_id = t2.object_id
go
--5.删除视图的数据,报错了
delete from dbo.v_temp_join
/*
消息 4405,级别 16,状态 1,第 1 行
视图或函数 'dbo.v_temp_join' 不可更新,因为修改会影响多个基表。
*/