我在SQL方面的知识还没有到目前为止,请帮我解决我的问题:从存储过程插入数据到SQL Server
我有一个生成一些数据的脚本。我需要这个数据插入到表结构如下:
Variable_Sample (idsample, idvariable, value), idsample and idvariable - PK.
下面是脚本:
Declare params cursor for
Select distinct id_variable from [UIR_DB].[dbo].[Variable_Values]
open params
Declare @idparam int
Declare @csql nvarchar(max) = ''
Declare @csql2 nvarchar(max) = ''
Declare @i int = 1
fetch next from params into @idparam
while @@FETCH_STATUS = 0
begin
Select @csql2 = @csql2 + ', param' +LTrim(Str(@i))
Select @csql = @csql + ' (Select value as param'+LTrim(Str(@i))+' from [UIR_DB].[dbo].[Variable_Values] where id_variable = '+LTrim(Str(@idparam))+') a'+LTrim(Str(@i))+' cross join'
Set @i = @i+1
fetch next from params into @idparam
end
Select @csql = '
SELECT id, CAST(SubString(Param,6,LEN(Param)-5) as int) param_id, param_val
FROM
(Select ROW_Number() over(order by '+SubString(@csql2,2,LEN(@csql2)-1)+') id, '+SubString(@csql2,2,LEN(@csql2)-1)+' from '+SubString(@csql,1,LEN(@csql)-11) + ') p
UNPIVOT
(param_val FOR Param IN
('+SubString(@csql2,2,LEN(@csql2)-1)+')
)AS unpvt
'
print @csql
exec sp_executesql @csql
close params
deallocate params
下面是脚本的结果:
。
所以我需要把脚本结果放入表Variable_Sample(idsample, idvariable, value)
,其中(idsample, idvariable
)是表的主键。
是啊,非常感谢! – 2013-05-05 21:34:52
伟大的我可以帮助,upvote如果它是有用的,所以其他用户也可以检查出来,当寻找另一种选择。 – Yaroslav 2013-05-05 21:47:09