update set多个字段update更新多个字段另类方法

若是oracle更新多个字段很简单,见下图,若是SQL更新多个字段的值却不能使用的这样的语句,只能多个字段以逗号的分开,要更新多少个字段就得写多少个,当然这种方法是最直接的笨办法。
难点是在写多个字段Update的值来源于下一个子句,也就是每个字段都要写语句set a =(select a from t where 条件1),那么我们可以在这语句的规律上下手,可以批量写出这样的语句,然后复制粘贴不就减少麻烦了吗,以下是笔者随意遇到的事情并记录下来,仅供参考和想象。

操作方法

  • 01

    先查出字段名,即需要更新哪些字段,若只有几个字段,也不算多少,若是上几十字段要更新,则将这些字段查出来是有必要的。

  • 02

    使用的exec sp_help '表名' 可以详细查到这个SQL表所有字段。但我们若需要加上条件范围,还是上使用的上面的语句更方便。如,我要将所有FQty数量列名的值更新为0

  • 03

    如,我要将所有FQty数量列名的值更新为0,我要set FQty=0,FQty1=0,FQty2=0,。。。。。。则可以按这样的语句在字段名后面拼接成完整的set语句。 select a.name+'=0,' ,* from syscolumns a, sysobjects b where  a.id=b.id and b.name='t_BOS200000033Entry2' and a.xtype = 106

  • 04

    然后我们将set的字段语句全部复制出来。

  • 05

    粘贴到需要Update的set语句中。若是set的值来源于另一个表select的值,则也是采用规律拼接set语句。若是没有规律,那么另找其他方法。

  • 06

    执行Update更新,在网上搜索过SQL中Update多个字段的方法,但没有找到什么好方法。若你有好的方法,请告诉我,感谢。

(0)

相关推荐