如何将某些值从表传递到存储过程

时间:2017-09-21 16:52:29

标签: sql sql-server sql-server-2008

这是我的问题。我有一个表tbl_archivos,其值如下:

Id   desc    namerc
---------------------------
1    arch1   RC201721091701
2    arch2   RC201724091701

我必须将我的表(上面)中列namerc的所有传递给类似参数的存储过程。

像这样:

sp_runproceess_billing 'RC201721091701'

然后是另一个值RC201724091701

我不允许使用光标!

请帮我解决这个问题。

谢谢

1 个答案:

答案 0 :(得分:2)

尝试此解决方案

DECLARE @t AS TABLE(id INT PRIMARY KEY IDENTITY, namerc VARCHAR(50))
    INSERT INTO @t 
    SELECT DISTINCT namerc FROM tbl_archivos
    ORDER BY tbl_archivos
    DECLARE @index INT = 1
    DECLARE @max INT = (SELECT COUNT(*) FROM @t)
    DECLARE @current_namerc VARCHAR(50)
    WHILE @index <= @max
    BEGIN
       SELECT @current_namerc  = namerc FROM @t WHERE id = @index
       EXEC sp_runproceess_billing @current_namerc
       SET @index = @index + 1
    END