SQL游标怎么用

SQL游标怎么用,具体举例,或者网址... SQL游标怎么用,具体举例,或者网址 展开
 我来答
nomanland
2009-02-18 · TA获得超过1218个赞
知道小有建树答主
回答量:958
采纳率:0%
帮助的人:616万
展开全部
例子
table1结构如下
id int
name varchar(50)

declare @id int
declare @name varchar(50)
declare cursor1 cursor for --定义游标cursor1
select * from table1 --使用游标的对象(跟据需要填入select文)
open cursor1 --打开游标

fetch next from cursor1 into @id,@name --将游标向下移1行,获取的数据放入之前定义的变量@id,@name中

while @@fetch_status=0 --判断是否成功获取数据
begin
update table1 set name=name+'1'
where id=@id --进行相应处理(跟据需要填入SQL文)

fetch next from cursor1 into @id,@name --将游标向下移1行
end

close cursor1 --关闭游标
deallocate cursor1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuyt80
2009-02-18 · TA获得超过634个赞
知道小有建树答主
回答量:403
采纳率:50%
帮助的人:296万
展开全部
游标
关系数据库中的操作会对整个行集产生影响。由 SELECT 语句返回的行集包括所有满足该语句 WHERE 子句中条件的行。由语句所返回的这一完整的行集被称为结果集。应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的结果集扩展。

游标通过以下方式扩展结果处理:

允许定位在结果集的特定行。

从结果集的当前位置检索一行或多行。

支持对结果集中当前位置的行进行数据修改。

为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。

提供脚本、存储过程和触发器中使用的访问结果集中的数据的 Transact-SQL 语句。
请求游标
Microsoft® SQL Server™ 2000 支持两种请求游标的方法:

Transact-SQL
对根据 SQL-92 游标语法制定的游标,Transact-SQL 语言支持使用它们的语法。

数据库应用程序编程接口(API)游标函数
SQL Server 支持这些数据库 API 的游标功能:

ADO(Microsoft ActiveX® 数据对象)

OLE DB

ODBC(开放式数据库连接)

DB-Library
应用程序不能混合使用这两种请求游标的方法。已经使用 API 指定游标行为的应用程序不能再执行 Transact-SQL DECLARE CURSOR 语句请求一个 Transact-SQL 游标。只有在将所有 API 游标特性均设回默认值后,应用程序才可以执行 DECLARE CURSOR。

如果 Transact-SQL 和 API 游标均未被请求,则默认情况下 SQL Server 将一个完整的结果集返回给应用程序,这个结果集称为默认结果集。

游标进程
Transact-SQL 游标和 API 游标有不同的语法,但下列一般进程可用于所有 SQL Server 游标:

把游标与 Transact-SQL 语句的结果集相关联,并且定义游标的特征,如是否能够更新游标中的行。

执行 Transact-SQL 语句以填充游标。

检索想要查看的游标中的行。从游标中检索一行或多行的操作称为提取。执行一系列的提取操作以向前或向后检索行的操作称为滚动。

根据需要,对游标中当前位置的行执行修改操作(更新或删除)。

关闭游标。
以上是帮助里面对游标的标准解释…………………………

游标的主要作用就是将select语句所得的列值一个个的取出来,下面是sql帮助里的一个例子,你参考一下吧

示例
下面的示例声明了一个游标,并且用 SELECT 显示 @@CURSOR_ROWS 的值。在游标打开前,设置值为 0,值 -1 则表示游标键集被异步填充。

SELECT @@CURSOR_ROWS
DECLARE authors_cursor CURSOR FOR
SELECT au_lname FROM authors
OPEN authors_cursor
FETCH NEXT FROM authors_cursor
SELECT @@CURSOR_ROWS
CLOSE authors_cursor
DEALLOCATE authors_cursor

-----------
0

(1 row(s) affected)

au_lname
----------------------------------------
White

(1 row(s) affected)

-----------
-1

(1 row(s) affected)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式