游标的使用--从游标提取数据

来源:互联网 发布:交易数据分析 编辑:程序博客网 时间:2024/05/02 04:24

USE Northwind
GO

--声明一个游标
DECLARE toolbar_cursor CURSOR FOR


SELECT ProductID,ProductName,CategoryID


FROM Products where CategoryID=2

 

--打开游标


OPEN toolbar_cursor

 

--定义接收游标属性的变量


declare @ProductID int


declare @ProductName nvarchar(40)


declare @CategoryID int

 


--从游标提取数据


  --从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:


  --FETCH cursor_name INTO variable[,variable,...]


  --对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。

 
--把游标当前值赋值给变量方法一


--FETCH toolbar_cursor INTO @ProductID,@ProductName,@CategoryID


--把游标当前值赋值给变量方法二


--FETCH NEXT FROM toolbar_cursor INTO @ProductID,@ProductName,@CategoryID


--@@FETCH_STATUS


--返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。

 

--返回值 描述


--0 FETCH 语句成功。


--1 FETCH 语句失败或此行不在结果集中。


--2 被提取的行不存在。

 


--语法


--@@FETCH_STATUS

 

--返回类型


--integer

 

--注释


--由于 @@FETCH_STATUS 对于在一个连接上的所有游标是全局性的,要小心使用 @@FETCH_STATUS

 

--。在执行一条 FETCH 语句后,必须在对另一游标执行另一 FETCH 语句前测试 @@FETCH

 


--用 @@FETCH_STATUS 控制在一个 WHILE 循环中的游标活动


WHILE @@FETCH_STATUS = 0


BEGIN

 

select @ProductID,@ProductName,@CategoryID


   FETCH NEXT FROM toolbar_cursor INTO @ProductID,@ProductName,@CategoryID


 END

 

--关闭游标


CLOSE toolbar_cursor


--删除游标


DEALLOCATE toolbar_cursor 

 

原创粉丝点击