我的数据库表中,要把所有NULL值都变成0,这些NULL值分布在不同的行,不同的列的,而且行的数量和列的数量也是动态的,我怎么写呢?

解决方案 »

  1.   

    UPDATE TABLE SET COL1=ISNULL(COL1,0),COL2=ISNULL(COL2,0),COL3=.....
      

  2.   

    你如果要去改没办法定的字段和列的话就有点麻烦了
    不过用还是用update 表名 set 字段 = isnull(col,0)
      

  3.   

    如果COL的类型是VARCHAR的话就是ISNULL(COL1,'0')
      

  4.   


    DECLARE @T TABLE(
    COL1 INT,
    COL2 VARCHAR(10)
    )
    INSERT INTO @T
    SELECT NULL,NULL
    SELECT ISNULL(COL1,0),ISNULL(COL2,0),ISNULL(COL1,''),ISNULL(COL2,'') FROM @T确实是这样,但我记得以前遇到过用ISNULL报转换错误的问题,加上''保险吧
      

  5.   

    行的数量和列的数量也是动态的  不太清楚lz意思  如果列名不定的话要用动态sql了 基本语句如楼上各位 
      

  6.   

    动态SQL
    SELECT * FROM sys.columns
    先找出同标的列为NULL的然后皮凑正确的SQL,思路很清晰,只是体力活了,LZ 自己搞定。
    另外基于字符处理皮凑SQL的方式,放飞适合SQL CLR,可以考虑