几千张表更新某个字段,这个字段又有几千种可能的值,怎么做快一些?

sdlyczl 2014-08-31 09:53:03
update table1 set col1=(case col1 when 100 then A when 90 then B ......)
update table2 set col1=(case col1 when 100 then A when 90 then B ......)
update table3 set col1=(case col1 when 100 then A when 90 then B ......)
一共几千张表,而col1这个字段有几千种可能,每种可能的值要换成相应的另一个值。
把这些语句放在一个sql文件里,都有上百M,放在sql server studio里打不开,直接卡死了。
请问这种情况下怎么做要好一点?
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdlyczl 2014-08-31
  • 打赏
  • 举报
回复
update table1 set col1 = ValueMapping.newValue from table1 inner join ValueMapping on table1.col1 = ValueMapping.oldValue 这个是正确的语法,感谢思路
sdlyczl 2014-08-31
  • 打赏
  • 举报
回复
good idea
xzb001 2014-08-31
  • 打赏
  • 举报
回复
试下把值的对应关系(case col1 when 100 then A when 90 then B ......),做成一个表,减少值替换的文本量。 可以新建一个值对应关系表,例如叫 create table ValueMapping( oldValue varchar(20), newValue varchar(20) ) ,然后把值对应关系插入到表里,insert into ValueMapping (oldValue, newValue) values('100', 'A') ,最后修改一下update语句,用上这个值对应表,update table1 from table1 inner join ValueMapping on table1.col1 = ValueMapping.oldValue set col1 = ValueMapping.newValue

34,590

社区成员

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

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