将 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

SqlFiddleDemo