在动态表中插入数据,请高手帮忙,在线等!!!!!!!!

yang25323 2005-01-03 10:30:05
create proc insert_wage @tablename char(13),@id varchar(20),
@month int,@year int,
@item1 money=0,@item2 money=0,@item3 money=0,@item4 money=0,
@item5 money=0,@item6 money=0
as
begin
declare @itemNO int
select @itemNO=count(*) from wagecolumn
exec('insert '+@tablename +' values('+@id+','+@month+','+@year+','+.....)
end
@tablename是一个动态生成的表,编号,年,月是其中固定列,其他列数目(肯定小于15)及名称不固定,类型为money.但列数能计算出,现要向里面插入数据
先设15个参数(后面没写),参数是顺序排列的,怎么插入?
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang25323 2005-01-03
  • 打赏
  • 举报
回复
搞定了,谢谢指点
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
NinGoo 2005-01-03
  • 打赏
  • 举报
回复
动态里的类型固定么?
使用条件判断来生成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)
chinaandys 2005-01-03
  • 打赏
  • 举报
回复
楼主,不是有一个 syscolumns系统表吗,完全可以通过一个变量如:

1.写一个字符串相加的函数.(col1,col2,col3....)

2.通过这个函数,再把 syscolumns系统表中对应的用户表列,字符串相加.

3.就是写一个insert.....


明白的没有...

可能小弟说的有些模糊,听楼下,指教
chinaandys 2005-01-03
  • 打赏
  • 举报
回复
我来也
yang25323 2005-01-03
  • 打赏
  • 举报
回复
怎么没人来啊?
说个思路就可以了
yang25323 2005-01-03
  • 打赏
  • 举报
回复
@itemNO为列数

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧