我有一个将 RS 报告参数保存到表中的存储过程,用户使用他们的选择运行报告,并将其保存以供日后检索。在我不得不将它切换到多选参数之前,它一切都很好。
这是因为它存储参数,如 -
价值,价值,价值
. 因此,在检索时,它只能看到表中的字符串。我需要做的是在将参数保存到表中时拆分参数。我已经掌握了一个功能来做到这一点,但我正在努力将它实现到存储过程中。
它是一个基本的存储过程,可以插入 savename、para1、para2。希望我没有太含糊!
我有一个将 RS 报告参数保存到表中的存储过程,用户使用他们的选择运行报告,并将其保存以供日后检索。在我不得不将它切换到多选参数之前,它一切都很好。
这是因为它存储参数,如 -
价值,价值,价值
. 因此,在检索时,它只能看到表中的字符串。我需要做的是在将参数保存到表中时拆分参数。我已经掌握了一个功能来做到这一点,但我正在努力将它实现到存储过程中。
它是一个基本的存储过程,可以插入 savename、para1、para2。希望我没有太含糊!
您可以像这样拆分多个值,#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
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