我有一个存储过程将RS报告参数保存到表中,用户运行报告及其选择,并保存以供日后检索。它一切顺利,直到我不得不将其切换到多选参数。
这是因为它存储了像
这样的参数价值,价值,价值
。因此,当涉及到检索时,它只能看到表中的字符串。我需要做的是在将参数保存到表中时拆分参数。我已经掌握了一个函数来执行此操作,但我正在努力将其实现到存储过程中。
它是一个插入savename,para1,para2的基本存储过程。希望我没有太模糊!
答案 0 :(得分: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
答案 1 :(得分: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