在什么情况下使用游标?

时间:2022-11-23 22:33:22
在什么情况下使用游标?游标的具体定义是什么,有哪位能讲的通俗一点.谢谢!

7 个解决方案

#1


从帮助拷贝:

游标
关系数据库中的操作会对整个行集产生影响。由 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 语句以填充游标。


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


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


关闭游标。 

#2


基本原则:
当你要处理的结果集比较庞大,而你要对某一行或几行进行操作的时候,要考虑使用游标!特别是对结果集中第几行进行行操作的时候,一般可以考虑使用游标!但也不是唯一的方法,可以利用别的方法来替代!

#3


你打开www.google.com,再输入查询关键字“游标+sql”,你便可以找到很多这方面的东西了,看看那些是你需要的

#4


在最需要的时候使用。

#5


当你的数据库中数据量大的时候,只想把其中的几条符合条件的调用出来,在这种情况下,就可以考虑用游标了,这种方法简便,访问大量数据时把符合条件的选出来,就可以用这种方法,不过,这只是其中一种查询方法。

#6


对不同的行集进行不同的操作时。在case when语句不现实的情况下

#7


当你需要对记录集里每行数据都要停下来进行大量复杂计算的时候;
当你需要在记录集里上下乱跳的时候。

#1


从帮助拷贝:

游标
关系数据库中的操作会对整个行集产生影响。由 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 语句以填充游标。


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


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


关闭游标。 

#2


基本原则:
当你要处理的结果集比较庞大,而你要对某一行或几行进行操作的时候,要考虑使用游标!特别是对结果集中第几行进行行操作的时候,一般可以考虑使用游标!但也不是唯一的方法,可以利用别的方法来替代!

#3


你打开www.google.com,再输入查询关键字“游标+sql”,你便可以找到很多这方面的东西了,看看那些是你需要的

#4


在最需要的时候使用。

#5


当你的数据库中数据量大的时候,只想把其中的几条符合条件的调用出来,在这种情况下,就可以考虑用游标了,这种方法简便,访问大量数据时把符合条件的选出来,就可以用这种方法,不过,这只是其中一种查询方法。

#6


对不同的行集进行不同的操作时。在case when语句不现实的情况下

#7


当你需要对记录集里每行数据都要停下来进行大量复杂计算的时候;
当你需要在记录集里上下乱跳的时候。