博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server中如何修改视图中的数据?
阅读量:5111 次
发布时间:2019-06-13

本文共 964 字,大约阅读时间需要 3 分钟。

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

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

--创建视图语句 ---create view V_EdsProd_1as    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=9go

查询视图的数据

--查询视图的数据---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_1as    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=9go

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

总结:

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

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

 

转载于:https://www.cnblogs.com/xielong/p/10516975.html

你可能感兴趣的文章
涛涛的Party
查看>>
SQL Server 触发器
查看>>
Silverlight 5 系列学习之一
查看>>
最值栈
查看>>
EXTJS中文乱码
查看>>
POJ2226 Muddy Fields 二分匹配 最小顶点覆盖 好题
查看>>
POJ 2528 Mayor's posters 线段树+离散化
查看>>
将DataSet(DataTable)转换成JSON格式(生成JS文件存储)
查看>>
javascript日常学习小记
查看>>
Objective-C 学习笔记(Day 2)
查看>>
如何使用PHP显示在线Word文档
查看>>
Discuz常见小问题-如何设置163邮箱注册验证
查看>>
IO流的基础与小型项目
查看>>
机器学习之--KNN算法简单实现
查看>>
【转】NoSQL小故事:单服务器如何应付每秒75万次查询(2)
查看>>
[Unity Shader] 3D模型的简单属性
查看>>
壁纸推荐2018
查看>>
JQuery对象转dom ,dom转jQuery
查看>>
jquery 异步请求
查看>>
2018-09-25
查看>>