环境:SQLServer 2008 R2
问题:对视图或函数’XXX’的更新或插入失败,因其包含派生域或常量域解决
创建视图命令:
create view D_S_G(sno,avg_grade) as select sno,avg(grade) from SC group by sno;原因:视图view不允许修改。
解决:重新创建一个表,结构内容都一样。
执行以下命令:
--d_s_t是表名,d_s_g是视图名 select * into d_s_t from d_s_g where 1<>1 insert into d_s_t select * from d_s_g
说明:表名(d_s_t)和以前的表名、视图名不一样,因为都是SQLServer对象。
解释:因为所创建的视图对其属性值进行了计算的其他形式上的改变,而对视图的更改最终表现为对表的更改而表中不存在视图的某一属性,或属性的性质不相同,则无法更改,这是一种视图机制。