本文介绍了模拟中的存储的过程、 触发器或批处理事务处理 SQL 游标类似提取下一个逻辑可以使用的各种方法。
事务处理 SQL 语句用于循环访问结果集
有三种方法可用于循环访问结果集使用事务处理 SQL 语句。一种方法是使用临时表。使用此方法,您创建初始的 SELECT 语句的"快照"并使用它作为基础的"指针"。例如:
/** example 1 **/declare @au_id char( 11 )
set rowcount 0 select * into #mytemp from authors
set rowcount 1
select @auid = auid from #mytemp
while @@rowcount <> 0 begin set rowcount 0 select * from #mytemp where auid = @auid delete #mytemp where auid = @auid
set rowcount 1 select @au_id = au_id from #mytemp<BR/>
end set rowcount 0
第二种方法是使用min函数表的一行"走"一次。此方法捕捉后添加存储的过程开始执行,前提是该新行具有唯一标识符大于当前正在处理查询中的行的新行。例如:
/** example 2 **/declare @au_id char( 11 )
select @auid = min( auid ) from authors
while @auid is not null begin select * from authors where auid = @auid select @auid = min( auid ) from authors where auid > @au_id end
/** example 3 **/set rowcount 0 select NULL mykey, * into #mytemp from authors
set rowcount 1 update #mytemp set mykey = 1
while @@rowcount > 0 begin set rowcount 0 select * from #mytemp where mykey = 1 delete #mytemp where mykey = 1 set rowcount 1 update #mytemp set mykey = 1 end set rowcount 0