我想在一个集合中的每一行上执行一个存储过程,而不使用像这样的光标:
SELECT EXEC dbo.Sproc @ Param1 = Table1.id
FROM表1
我在sql Server 2005中使用T-sql.我认为这可能是使用一个函数,但是如果可能,我想使用存储过程(公司标准)
解决方法
9的10次,你可以做你想要的没有光标或while循环.但是,如果你必须使用一个,我发现while循环往往更快.
另外如果你不想删除或更新表,你可以使用这样的东西:
WHILE @id IS NOT NULL BEGIN SELECT top 1 @id = MIN(id) FROM Table WHERE id > @id IF @id IS NOT NULL BEGIN exec dbo.Sproc @Param1 = @id END END