这么写,执行以下语句即可。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改为你的表名
我写的那段代码即可,讲Tablename换为你的表名,然后在查询分析器中执行那段代码。
三楼已经看到你得回复 谢谢 我正在试 通过就给分 呵呵 动态sql啊:)
(一天到晚游泳的鱼) 你好 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 的列时发生语法错误。
如果想把所有的0值更新为null应该怎么做呢? 试了一下报错 null更新为0已经通过
试试 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)
Set @S=''
Select @S=@S+'Update TableName Set '+Name+'=0 Where '+Name+' Is Null;'
from SysColumns Where ID=OBJECT_ID('TableName')
EXEC(@S)TableName改为你的表名
我正在试 通过就给分 呵呵
动态sql啊:)
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 的列时发生语法错误。
试了一下报错
null更新为0已经通过
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)