我要insert一条记录,有许多字段,比如是A字段,B字段,C字段.........
字段名不确定,因为是要自动添加字段的,不设默认值,如果设了默认值,要删除的时候比较麻烦,要连约束一起删除!我要添加一条记录
insert into table(A字段,C字段) values('aaaa','bbbb')
但是我其他字段要全部设为0,如何写这条insert语句???

解决方案 »

  1.   

    也就是说其他字段不能为空,所以还是必须要插入其他列了,
    据我所知好象没有什么“省事”的办法,建议楼主还是一列一列的老老实实插入吧
    insert into table(A字段,B字段,C字段...) values('aaaa',0,'bbbb'...) 
      

  2.   

    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)
    --
    动态生成语句,接分
      

  3.   

    可以直接删除阿
    在程序里边添加的时候加上default 0
    删除的时候直接删除就好了
      

  4.   

    http://www.lokcore.com/avrilxu/article.asp?id=23sql语句