sql中把值为null置0

有几十个列,有几百行数据,有主键id,但其余的列都是null,怎么一次性把所有的null全部置0呢?
可不可以用SQL语句实现??
刚才照着那么做。。不知道为什么不行。。

- 不能修改表。
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 'a11',表 'website.dbo.Tmp_table3';该列不允许空值。INSERT 失败。
[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。
虽然我已经把a11改成了不能为null了,可还是这样。。

第1个回答  2009-03-17
--建立一张测试的数据表
create table tb_s
([id] int not null,
n1 varchar(10) null,
n2 varchar(10) null,
n3 varchar(10) null,
n4 varchar(10) null,
n5 varchar(10) null,
n6 varchar(10) null,
n7 varchar(10) null,
)

declare @str varchar(5000),@value varchar(10),@sql varchar(1000)
set @str=''--存放表中的字段
set @value='=0'--更改的值

select @str=@str+name+@value+',' from syscolumns where id in(
select id from sysobjects where name='tb_s')
and name<>'id'--要排除不需要的字段,这里只排除了id,还可以增加
set @str=left(@str,len(@str)-1)

set @sql='update tb_s set '+@str+''--若要带where条件请自行添加
exec(@sql)
--print @sql本回答被提问者采纳
第2个回答  2009-03-14
update 表名
set 列名=0
where 列名 is null

你列很多就多执行几次吧(把列名改了)。
第3个回答  2009-03-14
进入企业管理器,将所有的列的属性改为默认值为 0 即可。
第4个回答  2009-03-14
先让该列允许为NULL,然后update 表 set 列=0
然后再将该列不允许空
第5个回答  2009-03-14
修改表的属性,将字段设为 不允许 NULL, 默认值设为 0
相似回答