执行一堆值的过程

时间:2014-01-13 15:22:26

标签: sql sql-server-2008 tsql stored-procedures

我有一个存储过程,它从一个表(有大约900个条目)的ID-Column中获取值作为输入来执行所需的操作。是否有一种简单的方法可以通过SQL语句为ID列的所有值执行存储过程(类似于SQL中不存在的for循环)?

感谢提示!

梅尔文

1 个答案:

答案 0 :(得分:0)

感谢Martin,

我选择光标版本,它的工作速度足够快:

DECLARE @ProID int
DECLARE position_cursor CURSOR
    FOR SELECT ProID FROM MyTable
OPEN position_cursor
FETCH NEXT FROM position_cursor INTO @ProID

WHILE @@FETCH_STATUS = 0
BEGIN
   exec MyProcedure @ProID
   FETCH NEXT FROM position_cursor INTO @ProID
END
CLOSE position_cursor
DEALLOCATE position_cursor