Stored procedures 将Tsql中的while循环/一个变量的多个值传递给exec proc

Stored procedures 将Tsql中的while循环/一个变量的多个值传递给exec proc,stored-procedures,while-loop,ssis,parameter-passing,Stored Procedures,While Loop,Ssis,Parameter Passing,我尝试解决这个问题已有一段时间了,但仍然不知道如何应用while值,如: while ....(having values in (X1, X2, X3, ........) ( execute 'package....' Param = X ) 每次传递X、X1、X2等值中的一个。您可以将所有参数传递到临时表,然后使用循环它们,而: CREATE TABLE #tab(id INT IDENTITY(1,1), param_value NVARC

我尝试解决这个问题已有一段时间了,但仍然不知道如何应用while值,如:

while ....(having values in (X1, X2, X3, ........)
     (
      execute 'package....'
      Param = X
      )

每次传递X、X1、X2等值中的一个。

您可以将所有参数传递到临时表,然后使用
循环它们,而

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
CREATE TABLE#tab(id INT-IDENTITY(1,1),参数值NVARCHAR(MAX));
插入#选项卡(参数值)
值(@X1),(@X2),(@X3);--。。。
声明@counter INT=1,
@参数NVARCHAR(最大值);
WHILE@counter