日期:2014-05-18  浏览次数:20609 次

视图可以增加一列吗
我的数据库有一个视图,是从其他数据库连过来的,是一张人员的视图。现在我想在该视图上增加一列(标志列,用于标注个别特殊用户),不知道可不可以呢?

------解决方案--------------------
create view dbo.v1
as
select *, 'aa ' as F1 from tablename

F1就是增加的列
------解决方案--------------------
视图是不能加列的,采用临时表的方式:
select *,convert(varchar(10), ' ') Flag into # from vw_test
------解决方案--------------------
不如根据视图来创建一张表吧。

create view dbo.v1
as
select *, 'aa ' as F1 from tablename

=-=

select * into tb_v1 from v1

=-=
然后就可以去更新操作tb_v1了。
------解决方案--------------------
增加一列是可以,上面以有人说过,但是更新肯定不行,因为“行列子集视图”才能更新
何谓行列子集视图呢?视图是从单个基本表只使用选择,投影操作导出且包含了基本表的主键这样的视图称为“行列子集视图”,最好的办法是,就你新产生的视图建一张表。如果需要和主表保持实时更新可以用触发器的方式。
------解决方案--------------------
可以