2013-08-16 14 views
0

我有一個存儲過程,將RS報告參數保存到一個表中,用戶使用他們的選擇運行報告,並保存在日後檢索。它的所有工作很好,直到我不得不將它切換到多選參數。存儲過程和拆分功能.....如何

這是因爲它是存儲像參數 -

價值,價值,價值

。所以當涉及到檢索它只能看到表中的字符串。我需要做的是在將參數保存到表格中時分割參數。我已經掌握了一個功能來做到這一點,但我正努力將其實施到存儲過程中。

它是一個基本的存儲過程,插入savename,para1,para2。希望我沒有太模糊!

回答

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 
+0

OK,我可以看到是如何工作的,我怎麼得到這個工作超過一個參數?即。我有4列 - 一個Savename和其他3有值? – GPH

+0

這些參數的類型是什麼? –

+0

他們是varchars – GPH

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<[email protected] 
begin 
set @Temp=select Splitval from @Tempdata 

Insert into Tablename(parameter) 
values(@Parameter) 

@[email protected]+1; 
end