update 
    tabname 
set 
    字段1 = isnull(字段1,0),
    字段2 = isnull(字段2,0),
    ...,
    字段n = isnull(字段n,0)

解决方案 »

  1.   

    这么写,执行以下语句即可。Declare @S Varchar(8000)
    Set @S=''
    Select @S=@S+'Update TableName Set '+Name+'=0 Where '+Name+' Is Null;'
    from SysColumns Where ID=OBJECT_ID('TableName')
    EXEC(@S)TableName改为你的表名
      

  2.   

    我写的那段代码即可,讲Tablename换为你的表名,然后在查询分析器中执行那段代码。
      

  3.   

    三楼已经看到你得回复 谢谢
    我正在试 通过就给分 呵呵
     动态sql啊:)
      

  4.   

    (一天到晚游泳的鱼)  你好
    Declare @S Varchar(8000)
    Set @S=''
    Select @S=@S+'Update Tablename Set '+Name+'=null Where '+Name+' =0;'
    from SysColumns Where ID=OBJECT_ID(Tablename')
    EXEC(@S)报错:
    服务器: 消息 245,级别 16,状态 1,行 1
    将 varchar 值 'B002' 转换为数据类型为 int 的列时发生语法错误。
      

  5.   

    如果想把所有的0值更新为null应该怎么做呢?
    试了一下报错
    null更新为0已经通过
      

  6.   

    试试
    Declare @S Varchar(8000)
    Set @S=''
    Select @S=@S+'Update TableName Set '+Name+'=Null Where '+Name+'=''0'';'
    from SysColumns Where ID=OBJECT_ID('TableName')
    EXEC(@S)
      

  7.   

    paoluo(一天到晚游泳的鱼) 高招.