admin

是否可以在不使用游标的情况下在集合上执行存储过程?

sql

我想在集合的每一行上执行一个存储过程,而无需使用带有以下内容的游标: 我在SQL Server 2005中使用T-
SQL。我认为使用函数可能是可行的,但是我想如果可能,使用存储过程(公司标准)

SELECT EXEC dbo.Sproc @Param1 = Table1.id FROM Table1


阅读 135

收藏
2021-05-10

共1个答案

admin

10次​​中有9次无需光标或while循环就可以执行所需的操作。但是,如果必须使用一个,我发现while循环会更快。

另外,如果您不想删除或更新表,则可以使用以下方法:

DECLARE @id [type]
SELECT @id = MIN([id]) FROM [table]
WHILE @id IS NOT NULL
BEGIN
    EXEC [sproc] @id
    SELECT @id = MIN([id]) FROM [table] WHERE [id] > @id
END
2021-05-10