关于视图中的批量修改

ggsysy 2009-05-08 03:20:15
从数据库中某个表中导出的excel表格会错位,原因是某些记录后面多了个回车键,现在我想去除掉视图v_good中code列的回车键,
update v_good
set code=replace(replace(replace(code,' ',''),char(10),''),char(13),'')
但是有错误:
服务器: 消息 4403,级别 16,状态 1,行 1
视图或函数 'v_good' 不可更新,因为它包含聚合。

但 打开视图-返回所有行 中就可以一一修改,我现在要批量修改就不行,奇怪……
该咋办效率最高?
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ch315537 2009-05-08
  • 打赏
  • 举报
回复
由多个表导出的视图,在修改时,不能够涉及到两个或两给以上的表中的字段。
  • 打赏
  • 举报
回复
首先要清楚什么样的视图是不可更新的:
1、视图中的数据来源于多张表
2、视图中的定义中select列表中有了distinct,计算表达式,聚合函数等。
ggsysy 2009-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 htl258 的回复:]
直接修改到原表。
[/Quote]
对原表操作也错误:
服务器: 消息 2627,级别 14,状态 1,行 1
违反了 PRIMARY KEY 约束 'PK_Good'。不能在对象 'Good' 中插入重复键。
语句已终止。
可是检查了一下,我的code列都根本没有重复的值。
ggsysy 2009-05-08
  • 打赏
  • 举报
回复
但为什么打开视图,直接修改视图中的记录又可以呢?
sdhdy 2009-05-08
  • 打赏
  • 举报
回复
在原表里修改。
htl258_Tony 2009-05-08
  • 打赏
  • 举报
回复
直接修改到原表。

34,571

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧