【问题标题】: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

    【讨论】:

      猜你喜欢
      • 2016-02-14
      • 1970-01-01
      • 2023-04-07
      • 2019-08-13
      • 2016-01-01
      • 2019-11-29
      • 2017-03-07
      • 1970-01-01
      • 2021-07-25
      相关资源
      最近更新 更多