
declare orderNum_02_cursor cursor scroll for select OrderId from bigorder where orderNum='ZEORD003402'
3.打开游标
--打开游标语法 open [ Global ] cursor_name | cursor_variable_name
cursor_name:游标名,cursor_variable_name:游标变量名称sql serber,该函数引用了一个游标。
--打开游标 open orderNum_02_cursor

4.提取数据
--提取游标语法 Fetch [ [Next|prior|Frist|Last|Absoute n|Relative n ] from ] [Global] cursor_name [into @variable_name[,....]]
参数说明:
例子:
--提取数据 fetch first from orderNum_02_cursor fetch relative 3 from orderNum_02_cursor fetch next from orderNum_02_cursor fetch absolute 4 from orderNum_02_cursor fetch next from orderNum_02_cursor fetch last from orderNum_02_cursor fetch prior from orderNum_02_cursor select * from bigorder where orderNum='ZEORD003402'

结果(对比一下sql serber,就知道啦):

例子:
--提取数据赋值给变量 declare @OrderId int fetch absolute 3 from orderNum_02_cursor into @OrderId select @OrderId as id select * from bigorder where orderNum='ZEORD003402'
结果:


通过检测全局函数@@Fetch_Status的值,获得提取状态信息,该状况用于推断Fetch语句返回数据的有效性。当执行一条Fetch语句后来,@@Fetch_Status可能出现3种值:0,Fetch语句成功。-1:Fetch语句失败或行不在结果集中。-2:提取的行不存在。
这个状况值可以给你判定提取数据的成功与否。
declare @OrderId int fetch absolute 3 from orderNum_02_cursor into @OrderId while @@fetch_status=0 --提取成功,进行下一条数据的提取操作 begin select @OrderId as id fetch next from orderNum_02_cursor into @OrderId --移动游标 end
5.利用游标更新删除数据

--游标修改当前数据语法 Update 基表名 Set 列名=值[,...] Where Current of 游标名 --游标删除当前数据语法 Delete 基表名 Where Current of 游标名
---游标更新删除当前数据 ---1.声明游标 declare orderNum_03_cursor cursor scroll for select OrderId ,userId from bigorder where orderNum='ZEORD003402' --2.打开游标 open orderNum_03_cursor --3.声明游标提取数据所要存放的变量 declare @OrderId int ,@userId varchar(15) --4.定位游标到哪一行 fetch First from orderNum_03_cursor into @OrderId,@userId --into的变量数量必须与游标查询结果集的列数相同 while @@fetch_status=0 --提取成功,进行下一条数据的提取操作 begin if @OrderId=122182 begin Update bigorder Set UserId='123' Where Current of orderNum_03_cursor --修改当前行 end if @OrderId=154074 begin Delete bigorder Where Current of orderNum_03_cursor --删除当前行 end fetch next from orderNum_03_cursor into @OrderId ,@userId --移动游标 end
6.关闭游标
游标打开后,服务器会专门为游标分配必定的存储空间储存游标操作的数据结果集,同时使用游标也会对这些数据进行封锁。所以游标一旦用过,应立即关掉,避免服务器资源浪费。
--关闭游标语法 close [ Global ] cursor_name | cursor_variable_name --关闭游标 close orderNum_03_cursor
7.删除游标
删除游标,释放资源
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-134548-1.html
哎
都可以自由的通过美国的任何海域