SQLserver如何批量修改多个表中的多个字段?

需要把表中的列名为name中的数据A变成1,B变成2,C变成3,

第一个问题一张表如何批量修改?

第二个问题一个数据库中所有的表能否批量修改?包含ABC字段的数据批量修改为123?

感谢!!

3295293 发布于 2020-12-9 08:01
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2020-12-9 09:21
update 表名 set name=case when name='A' then '1' when name='B' then '2' when name='C' then '3' else name end


最佳回答
0
shirokoLv6资深互助
发布于2020-12-9 08:08(编辑于 2020-12-9 08:08)

update set name='1' where name='A';

update set name='2' where name='B';

update set name='3' where name='C';


UPDATE就是批量修改,满足条件的全部会修改,所以update前建议先select看一下,免得改错

  • 3295293 3295293(提问者) 这样写 我知道 关键是 这样只能一个条件一个条件的改,有没有 语句 一次修改3条?
    2020-12-09 08:15 
  • shiroko shiroko 回复 3295293(提问者) 如果你name=A有三个,就会一次改3条啊。你有多个值A,B,C的话,你不写出3个条件+3个目标怎么知道你要改着三条啊。。。或者你改成 name=某函数(name) where name in(1,2,3);那你要实现一个函数可以把1,2,3分别转化成A,B,C,说实话我觉得这样更麻烦
    2020-12-09 08:17 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-12-9 08:16

一个语句没法实现的,一个一个写吧,批量执行把

  • 4关注人数
  • 820浏览人数
  • 最后回答于:2020-12-9 09:21
    请选择关闭问题的原因
    确定 取消
    返回顶部