在sql server中使用游标的替代方法是什么。 我已经知道一个涉及使用Row_Number()函数的技巧,该函数对行进行编号然后我可以逐个循环它们。还有其他想法吗?
答案 0 :(得分:8)
当我不想使用SQL游标复杂化时,我经常填充临时表或表变量,然后执行while循环来完成它们。
例如:
declare @someresults table (
id int,
somevalue varchar(10)
)
insert into @someresults
select
id,
somevalue
from
whatevertable
declare @currentid int
declare @currentvalue varchar(10)
while exists(select 1 from @someresults)
begin
select top 1 @currentid = id, @currentvalue = somevalue from @someresults
--work with those values here
delete from @someresults where id = @currentid
end
答案 1 :(得分:2)
有几个选择: