游标的作用是什么? 用自己的话回答号码?

在存储过程中,游标的作用是逐一返回我们需要返回的数据,并且进行逐一的处理,谁能给我举个例子吗?... 在存储过程中,游标的作用是逐一返回我们需要返回的数据,并且进行逐一的处理,谁能给我举个例子吗? 展开
 我来答
百度网友4efe45b
推荐于2018-07-21 · TA获得超过441个赞
知道小有建树答主
回答量:266
采纳率:100%
帮助的人:299万
展开全部
用自己的话啊
就是循环对一组数据进行操作的时候的一种手段

ps:游标的效率向来是受争议的,建议1000条以上的数据循环操作时尽量避免使用

--以下为例子
--声明变量
DECLARE @vendor_id int, @vendor_name nvarchar(50),
@message varchar(80), @product nvarchar(50)

--声明游标,select的结果就会放在游标中了
DECLARE vendor_cursor CURSOR FOR
SELECT VendorID, Name
FROM Purchasing.Vendor
WHERE PreferredVendorStatus = 1
ORDER BY VendorID

--打开游标
OPEN vendor_cursor

--取下一条数据,因为游标打开以后,默认的指针是在第一条前面的
--这个语句的意思是把第一条记录中的数据拿出来,并赋值给之前声明的变量
FETCH NEXT FROM vendor_cursor
INTO @vendor_id, @vendor_name

--如果取数据成功,则....
--这里的while是一个循环,用来遍历整个游标
WHILE @@FETCH_STATUS = 0
BEGIN
--这个地方就是写处理过程的,这里只是些了几个无关紧要的语句
PRINT ' '
SELECT @message = '----- Products From Vendor: ' + @vendor_name
PRINT @message

--取下一条
FETCH NEXT FROM vendor_cursor
INTO @vendor_id, @vendor_name
END

--关闭并释放游标
CLOSE vendor_cursor
DEALLOCATE vendor_cursor

再次PS:其实这个是联机帮助里的例子,注释是我加的,楼主学习sql server可以多看联机帮助,那个是不错的学习资料
liqinghuiyx
2012-07-06 · TA获得超过762个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:239万
展开全部
我的理解:游标作用,其实和循环差不多,就是你把数据放在游标里面,然后使用游标一行一行的取得数据。最终达到循环处理数据的目的。
比如(鉴于你不是很理解,就给你弄个最简单的吧)
--创建一个游标
cursor cur1 is
select * from table where group by ..
begin
--遍历 游标 其中 rec 是游标的当前行数据
for rec in cur_1 loop
--根据rec 数据更新一个表
update tabel set row1= rec.rown, row2 =rec.row2
where id=rec.id
--结束循环
and loop
commit;
end;
以上就是循环更新一个表
例子就不给你复杂的了。希望能帮到楼主。建议楼主可以看看他的语法,然后亲自写一个小例子,我决定这样理解的更深入一些
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
她是我的小太阳
高粉答主

推荐于2017-09-09 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:9087万
展开全部
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果

每个游标区都有一个名字

用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理

主语言是面向记录的,一组主变量一次只能存放一条记录

仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求

嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu0829
2012-07-06 · TA获得超过2937个赞
知道大有可为答主
回答量:2251
采纳率:50%
帮助的人:2350万
展开全部
-- 声明游标;CURSOR cursor_name IS select_statement
--For 循环游标
--(1)定义游标
--(2)定义游标变量
--(3)使用for循环来使用这个游标
declare
--类型定义
cursor c_job
is
select empno,ename,job,sal
from emp
where job='MANAGER';
--定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_job%rowtype;
begin
for c_row in c_job loop
dbms_output.put_line(c_row.empno);
end loop;
end;

这个就是典型的游标例子,
select empno,ename,job,sal
from emp
where job='MANAGER'
查询出来的是个结果集合,游标就一条一条的读取出来
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d4b9174
2015-12-09 · TA获得超过1215个赞
知道小有建树答主
回答量:742
采纳率:57%
帮助的人:172万
展开全部
游标由结果集(SQL语句的查询结果,可以是0条、一条或多条记录)和指向结果集中指向某条记录的游标位置组成,通过移动游标位置,可以对结果集中的记录进行遍历查询。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式