0

我有一个将 RS 报告参数保存到表中的存储过程,用户使用他们的选择运行报告,并将其保存以供日后检索。在我不得不将它切换到多选参数之前,它一切都很好。

这是因为它存储参数,如 -

价值,价值,价值

. 因此,在检索时,它只能看到表中的字符串。我需要做的是在将参数保存到表中时拆分参数。我已经掌握了一个功能来做到这一点,但我正在努力将它实现到存储过程中。

它是一个基本的存储过程,可以插入 savename、para1、para2。希望我没有太含糊!

4

2 回答 2

0

您可以像这样拆分多个值,#Table存储您需要的值

    CREATE TABLE #Table (Value VARCHAR(MAX))
    DECLARE @Values VARCHAR(MAX) = (select StringStoredValue from TableName)
    SET @Values = 'INSERT INTO #Table SELECT ' + REPLACE(@Values, ',',' UNION SELECT ')
    EXEC(@Values)
    --Here you can do join with #Table and find those values which required
    SELECT * FROM #Table 
    DROP TABLE #Table
于 2013-08-16T09:37:06.467 回答
0
Declare @N  int
Declare @Temp varchar(max)
Declare @Count int

Declare @Tempdata
(
Id int,
Splitval varchar(max)

)
Insert into @Tempdata
select * from [dbo].[split]('@Parameter',',')

set @Count = select * from @Tempdata

set @N=1
while @N<=@Count
begin
set @Temp=select Splitval from @Tempdata

Insert into Tablename(parameter)
values(@Parameter)

@N=@N+1;
end
于 2014-01-04T07:28:08.247 回答