日期:2014-05-17  浏览次数:20351 次

sql 更新多列的问题
有一张表需要更新120列数据,opp1-opp120,以前是用游标写的,每次更新一列,但效率比较低。但如果改成update acccount set opp1=1,opp2=1,...opp120=1 where ... 要写120个,也太繁琐了。

请教有没有什么好的方法?

------解决方案--------------------
动态拼接语句?
------解决方案--------------------
如果值固定的话,可以把列拼接出来
select stuff((select ','+name+'=1' from sys.columns where object_id=object_id('表名') for xml path('')),1,1,'')
------解决方案--------------------
给点数据看看
------解决方案--------------------
引用:
需要更新两次,第一次是把这120列置为固定值,第二次根据条件把另一张表的数据更新到相应的列上

呵呵,你应该把语句写好存在一个表里,下次直接运行,一劳永逸啊~