1
--
游标使用流程
2 use book
3 go
4 declare @stuName varchar ( 400 )
5 declare @major varchar ( 400 )
6 -- 声明一个游标并与sql语句关联
7 declare mycursor cursor for
8 select stuName,major from dbo.student
9 -- 打开游标
10 open mycursor
11 -- 取sql语句结果
12 fetch next from mycursor into @stuName , @major
13 -- @@FETCH_STATUS判断上一句fetch是否成功,循环读取
14 -- @@fetch_status是MSSQL的一个全局变量
15 -- 其值有以下三种,分别表示三种不同含义:【返回类型integer】
16 -- 0 FETCH 语句成功
17 -- -1 FETCH 语句失败或此行不在结果集中
18 -- -2 被提取的行不存在
19 -- @@fetch_status值的改变是通过fetch next from实现的
20 -- FETCH NEXT FROM Cursor
21 while @@FETCH_STATUS <>- 1
22 begin
23 if @@fetch_status <> - 2
24 begin
25 print @stuName + @major
26 fetch next from mycursor into @stuName , @major
27 end
28 end
29 -- 关闭游标
30 close mycursor
31 -- 释放游标资源
32 deallocate mycursor
2 use book
3 go
4 declare @stuName varchar ( 400 )
5 declare @major varchar ( 400 )
6 -- 声明一个游标并与sql语句关联
7 declare mycursor cursor for
8 select stuName,major from dbo.student
9 -- 打开游标
10 open mycursor
11 -- 取sql语句结果
12 fetch next from mycursor into @stuName , @major
13 -- @@FETCH_STATUS判断上一句fetch是否成功,循环读取
14 -- @@fetch_status是MSSQL的一个全局变量
15 -- 其值有以下三种,分别表示三种不同含义:【返回类型integer】
16 -- 0 FETCH 语句成功
17 -- -1 FETCH 语句失败或此行不在结果集中
18 -- -2 被提取的行不存在
19 -- @@fetch_status值的改变是通过fetch next from实现的
20 -- FETCH NEXT FROM Cursor
21 while @@FETCH_STATUS <>- 1
22 begin
23 if @@fetch_status <> - 2
24 begin
25 print @stuName + @major
26 fetch next from mycursor into @stuName , @major
27 end
28 end
29 -- 关闭游标
30 close mycursor
31 -- 释放游标资源
32 deallocate mycursor