数据库>SQL Server>循环游标读取例子

时间:2022-02-07 13:26:23

表数据:

ID Name

1 a

2 b

3 c

 

存储过程:

 

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



ALTER procedure [dbo].[test1]
--@Id varchar(50) output
as


declare @ID varchar(50)--设置中间变量
declare vari_Cursor Cursor scroll for select ID from tbA--声明游标,并指向查询结果,参数Local表示此游标的作用范围仅限于本存储过程
open vari_Cursor--打开游标
fetch next from vari_Cursor--提取游标里的数据
while(@@Fetch_Status = 0)--设置循环,0表示成功打开游标,-1表示语句失败,-2表示被提取的行不存在
begin
fetch next from vari_Cursor into @iD--把游标值放入临时变量
end

close vari_Cursor--关闭游标
DealLocate vari_Cursor--释放游标内存

print @ID--输出临时变量的值

要注意,数据库里的临时变量@ID是严格,不能大小写任意。