为表的每一行运行存储过程

Fra*_*era 3 sql t-sql stored-procedures

我有一张看起来像这样的桌子

value_1  value_2  value_3
---------------------------
   1        2        3
   4        5        6
   7        8        9
   ...     ...     ...
Run Code Online (Sandbox Code Playgroud)

我需要为这个表的每一行运行一个存储过程,比如

foreach value_1, value_2, value_3 from my_table
exec spProcedure value_1, value_2, value_3
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Mag*_*nus 8

您可以使用游标:

DECLARE @value1 INT,
        @value2 INT,
        @value3 INT 

DECLARE cursorElement CURSOR FOR
            SELECT  value_1, value_2, value_2
            FROM    table


OPEN cursorElement
FETCH NEXT FROM cursorElement INTO @value1, @value2, @value3

WHILE ( @@FETCH_STATUS = 0 )
BEGIN
    exec spProcedure @value1, @value2, @value3

    FETCH NEXT FROM cursorElement INTO @value1, @value2, @value3
END         
CLOSE cursorElement
DEALLOCATE cursorElement
Run Code Online (Sandbox Code Playgroud)