我想在集合的每一行上执行一个存储过程,而无需使用带有以下内容的游标: 我在SQL Server 2005中使用T- SQL。我认为使用函数可能是可行的,但是我想如果可能,使用存储过程(公司标准)
SELECT EXEC dbo.Sproc @Param1 = Table1.id FROM Table1
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