我有一個存儲過程,將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<[email protected]
begin
set @Temp=select Splitval from @Tempdata
Insert into Tablename(parameter)
values(@Parameter)
@[email protected]+1;
end
OK,我可以看到是如何工作的,我怎麼得到這個工作超過一個參數?即。我有4列 - 一個Savename和其他3有值? – GPH
這些參數的類型是什麼? –
他們是varchars – GPH