如何多次执行存储过程

11

我有一个存储过程,可以像这样执行:

exec sp_storedProc '123','ME', '333',NULL

我有400个不同的值需要指定。我该如何一次性执行带不同值的存储过程?


3
它们是4个参数的400种不同变化还是400个参数? - crthompson
3
注意:不要在存储过程前使用 sp_ 前缀。微软已经为自己的使用保留了该前缀(详见命名存储过程,您将来可能会遇到名称冲突的风险。 这也会影响存储过程性能。最好只是简单地避免使用 sp_,并使用其他前缀 - 或根本不使用前缀! - marc_s
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
23

你可以尝试使用CURSORS来完成它

DECLARE @param INT

DECLARE curs CURSOR LOCAL FAST_FORWARD FOR
    SELECT parameter FROM table_name WHERE ...

OPEN curs

FETCH NEXT FROM curs INTO @param

WHILE @@FETCH_STATUS = 0 BEGIN
    EXEC sp_storeProc  @param
    FETCH NEXT FROM curs INTO @param
END

CLOSE curs
DEALLOCATE curs

6
有没有不使用游标或while循环的替代方案? - sqluser
谢谢您。我创建了一个临时表,并将上述内容用作存储过程,将所有结果插入该表中。效果非常好! - Gray Meiring

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,