首页 > 数据库技术 > 详细

sql server中如何修改视图中的数据?

时间:2019-03-12 15:30:36      阅读:262      评论:0      收藏:0      [点我收藏+]

sql server中如何修改视图中的数据?

我做个测试,视图的数据有标记字段时,如果是这种方式(0 as FlagState),是无法修改的

--创建视图语句 ---
create view V_EdsProd_1
as
    select a.Uid ProdId, a.Code ProdCode,a.Name ProdName,b.Name ProdUnit,0 as FlagState 
    from EdsProd a 
    left join EdsProdUnit b on a.ProdUnit = b.Uid
    where a.DownloadFlag=0 and a.State=9
go

查询视图的数据

--查询视图的数据---
select * from V_EdsProd_1

技术分享图片

假如,我们要修改视图的数据(33921,33922)的状态为1

--修改视图数据的语法--
update V_EdsProd_1 set FlagState=1 where ProdId in(33921,33922);

报错如下:

技术分享图片

那么,我们将上面创建的视图,重新定义一下(0 as FlagState)把这个0改成数据表中存在的字段

--删除视图的语法--
drop view V_EdsProd_1;

--创建视图语句 ---
create view V_EdsProd_1
as
    select a.Uid ProdId, a.Code ProdCode,a.Name ProdName,a.DownloadFlag as FlagState 
    from EdsProd a 
    left join EdsProdUnit b on a.ProdUnit = b.Uid
    where a.DownloadFlag=0 and a.State=9
go

再次执行修改语句,结果如下:

技术分享图片

总结:

  数据库的视图的数据如果想要修改,必须保证标记字段是持久化存在的(得有这个字段),才能修改;反之,

如果只是用“0或‘ ‘ AS FlagState” 这种,只是一个引用,下次调用视图还是会被初始化,无法修改

 

sql server中如何修改视图中的数据?

原文:https://www.cnblogs.com/xielong/p/10516975.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!