将 Tsql 中的 while 循环/一个变量的多个值传递给 exec proc
pass a while loop in Tsql / multiple values for one variable to exec proc
一段时间以来我一直在尝试解决这个问题,但仍然无法弄清楚如何应用 while 值,例如:
while ....(having values in (X1, X2, X3, ........)
(
execute 'package....'
Param = X
)
每次传递 X 的值之一,然后是 X1,然后是 X2,依此类推。
您可以将所有参数传递给临时 table,然后使用 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
一段时间以来我一直在尝试解决这个问题,但仍然无法弄清楚如何应用 while 值,例如:
while ....(having values in (X1, X2, X3, ........)
(
execute 'package....'
Param = X
)
每次传递 X 的值之一,然后是 X1,然后是 X2,依此类推。
您可以将所有参数传递给临时 table,然后使用 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