sql server中如何修改视图中的数据?
2024-10-18 18:17:53
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” 这种,只是一个引用,下次调用视图还是会被初始化,无法修改
最新文章
- MySQL模糊搜索的四种用法
- 《利用Python进行数据分析: Python for Data Analysis 》学习随笔
- nodejs学习笔记二——链接mongodb
- 自定义圆形控件RoundImageView并认识一下attr.xml
- 关于markdown的学习
- jQuery Validate input是动态变化的
- 完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能
- Gulp:新一代前端构建利器
- 通过共享用户ID来实现多个应用程序使用同一个进程(一些情况的测试)
- 洛谷P1198 [JSOI2008]最大数
- Intent传值之通过Application传值
- POJ1985 DFS【STL__vector_的应用】
- 引用WCF地址报下载“https://xxx:8004/TerminalHandler.svc?disco”时出错问题
- Ubuntu安装中文输入法
- 疑似CPU或者内存故障导致进程崩溃
- MAMP显示文件列表
- Java中clone方法的使用
- npm用法
- s和t的特殊权限
- 蓝牙协议分析(9)_BLE安全机制之LL Privacy
热门文章
- css3 样式过度器 Transition
- 【.NET】 HTTP协议之webrequest
- 解决 Invalid character found in method name. HTTP method names must be tokens 异常信息
- Exp5 MSF基础应用 20164303景圣
- linux install Openvino
- dnsmasq 设置自动获取主机名
- 图像旋转与图像缩放及Matlab代码实现
- Android系统应用Mms之短信会话列表加载流程一
- java中‘\'和'/'的区别
- oracle 锁表