楼主,不是有一个 syscolumns系统表吗,完全可以通过一个变量如:1.写一个字符串相加的函数.(col1,col2,col3....)2.通过这个函数,再把 syscolumns系统表中对应的用户表列,字符串相加.3.就是写一个insert.....
明白的没有...可能小弟说的有些模糊,听楼下,指教

解决方案 »

  1.   

    动态里的类型固定么?
    使用条件判断来生成insert的动态插入语句declare @sql varchar(1000)
    set @sql='insert into '+@tablename + 'values'if @itemNO=4
    set @sql=@sql+ '('+@id+','+@month+','+@year+','+@value3+')'
    if @itemNO=4
    set @sql=@sql+ '('+@id+','+@month+','+@year+','+@value3+','+@value4+')'
    ...exec (@sql)
      

  2.   

    搞定了,谢谢指点
    declare @sql varchar(100),@itemNO int,@tablename char(13),@id varchar(12)
    declare @month int, @year int
    declare @item1 money,@item2 money,@item3 money,@item4 money
    set @tablename='W00001_200412'
    set @id='E0001'
    set @item1=200
    set @item2=300
    set @item3=400
    set @item4=700
    set @itemNO=4
    set @month=12
    set @year=2004
      set @sql ='insert into '+@tablename+' values('''+@id+''','+convert(varchar,@month)+','+
                        convert(varchar,@year)+','+'null,'+'null,'
             set @sql=case @itemNO
             when 1 then @sql+convert(varchar,@item1)+')'
             when 2 then @sql+convert(varchar,@item1)+','+convert(varchar,@item2)+')'
             when 3 then  @sql+convert(varchar,@item1)+','+convert(varchar,@item2)
                                        +','+convert(varchar,@item3)+')'
             when 4 then @sql+convert(varchar,@item1)+','+convert(varchar,@item2)
                               +','+convert(varchar,@item3)+','+convert(varchar,@item4)+')'
            else '' end
      exec(@sql)
    print @sql