【问题标题】:pass a while loop in Tsql / multiple values for one variable to exec proc将Sql中的while循环/一个变量的多个值传递给exec proc
【发布时间】:2016-01-23 04:26:12
【问题描述】:
我一直在尝试解决这个问题,但仍然无法弄清楚如何应用 while 值,例如:
while ....(having values in (X1, X2, X3, ........)
(
execute 'package....'
Param = X
)
每次传递 X 的值之一,然后是 X1,然后是 X2,依此类推。
【问题讨论】:
标签:
stored-procedures
while-loop
ssis
parameter-passing
【解决方案1】:
您可以将所有参数传递给临时表,然后使用 WHILE 循环它们:
CREATE TABLE #tab(id INT IDENTITY(1,1), param_value NVARCHAR(MAX));
INSERT INTO #tab(param_value)
VALUES (@X1), (@X2), (@X3); -- ...
DECLARE @counter INT = 1,
@param NVARCHAR(MAX);
WHILE @counter <= (SELECT MAX(id) FROM #tab)
BEGIN
SELECT @param = param_value
FROM #tab
WHERE id = @counter;
EXEC [dbo].[my_stored_proc]
@param;
SET @counter += 1;
END
SqlFiddleDemo