日期:2014-05-18  浏览次数:20412 次

请教一个SQL insert语句,除指定字段外,其他字段都设为0
我要insert一条记录,有许多字段,比如是A字段,B字段,C字段.........
字段名不确定,因为是要自动添加字段的,不设默认值,如果设了默认值,要删除的时候比较麻烦,要连约束一起删除!

我要添加一条记录
insert into table(A字段,C字段) values('aaaa','bbbb')
但是我其他字段要全部设为0,如何写这条insert语句???

------解决方案--------------------
declare @tbID int
select @tbID=id from sys.sysobjects where xtype='u' and name='table'

declare @sql varchar(8000),@zeroZD varchar(8000)
set @sql='insert into tb(A字段,C字段,'
set @zeroZD=','
select @sql=@sql++a.name+',',@zeroZD=@zeroZD+'0,'
from 
(
select name from sys.syscolumns 
where id=@tbID and name<>'A字段' and name<>'C字段'
)a
set @zeroZD=substring(@zeroZD,1,len(@zeroZD)-1)+')'
set @sql=substring(@sql,1,len(@sql)-1)+') values(''aaa'',''bbb'''+@zeroZD
print @sql
exec(@sql)
--
动态生成语句,接分
------解决方案--------------------
http://www.lokcore.com/avrilxu/article.asp?id=23sql语句