数据库>SQL Server>循环游标读取例子
表数据:
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是严格,不能大小写任意。
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是严格,不能大小写任意。
合乎自然而生生不息。。。