sqlserver2005 游标应用与详细说明
sqlserver2005 游标应用与详细说明
/*
output 游标参数
output 游标参数用来将存储过程的局部游标传递回调用批处理、存储过程或触发器。
首先,创建以下过程,在 titles 表上声明并打开一个游标:
use pubs
if exists (select name from sysobjects
where name = 'titles_cursor' and type = 'p')
drop procedure titles_cursor
go
create procedure titles_cursor @titles_cursor cursor varying output
as
set @titles_cursor = cursor
forward_only static for
select *
from titlesopen @titles_cursor
go
接下来,执行一个批处理,声明一个局部游标变量,执行上述过程以将游标赋值给局部变量,然后从该游标提取行。
use pubs
go
declare @mycursor cursor
exec titles_cursor @titles_cursor = @mycursor output
while (@@fetch_status = 0)
begin
fetch next from @mycursor
end
close @mycursor
deallocate @mycursor
go
关于sql server 游标
游标(cursor)它使用户可逐行访问由sql server返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用sql语言从数据库教程中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在sql server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
1.2 游标的优点
从游标定义可以得到游标的如下优点,这些优点使游标在实际应用中发挥了重要作用:
1)允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。
2)提供对基于游标位置的表中的行进行删除和更新的能力。
3)游标实际上作为面向集合的数据库管理系统(rdbms)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。
1.3 游标的使用
讲了这个多游标的优点,现在我们就亲自来揭开游标的神秘的面纱。
使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。
1.3.1声明游标
最简单游标声明:declare <游标名>cursor for<select语句>;
其中select语句可以是简单查询,也可以是复杂的接连查询和嵌套查询
例子:[已表2 addsalary为例子]
declare mycursor cursor for select * from addsalary 这样我就对表addsalary申明了一个游标mycursor
【高级备注】
declare <游标名> [insensitive] [scroll] cursorfor<select语句> 这里我说一下游标中级应用中的[insensitive]和[scroll]
补充:数据库,Mssql