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

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

相关文章

1、MYSQL 视图的不可以更改数据----https://blog.csdn.net/weixin_33713350/article/details/93029191?utm_term=%E5%9C%A8%E6%95%B0%E6%8D%AE%E8%A1%A8%E8%A7%86%E5%9B%BE%E4%B8%AD%E4%B8%8D%E5%8F%AF%E4%BB%A5%E4%BF%AE%E6%94%B9%E5%AD%97%E6%AE%B5%E7%9A%84&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-0-93029191&spm=3001.4430

2、请问视图里面的数据能不能直接修改?----https://bbs.csdn.net/topics/30333942

3、能否向Mysql视图中插入/更新/删除数据----https://blog.csdn.net/nimeijian/article/details/51958758?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

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” 这种,只是一个引用,下次调用视图还是会被初始化,无法修改

 

平时多记记,到用时才能看看,记录你的进步,分享你的成果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值