游标的类型是游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。SQL Server 2014中支持以下3种类型的游标。

1.Transact-SQL游标使用DECLARECURSOR语法创建的游标,主要作用在Transact-SQL脚本、存储过程程和触发器中,它们使结果集的内容可用于其他Transact-SQL语句。transact-sql游标主要用在服务器上,由从客户端发送给服务器Transact-SQL语句或是批处理、存储过程、触发器中的Transact-SQL进行管理。Transact-SQL游标不支持提取数据块或多行数据。

mysql 不支持sql游标 mysql支持的游标类型_SQL

2.API游标API游标可以在OLEDB、ODBC以及DBlibrary中使用游标函数,主要作用在服务器上。当客户端程序通过API调用游标函数时,SQLServer的OLEDB提供者、DBlibrary的动态链接库会将操作请求传递到服务器对API游标进行处理。API服务器游标包含静态游标、动态游标、只进游标、键集驱动游标四种。

(1)静态游标静态游标的结果集会将打开游标时建立的结果存储在临时表中(静态游标只能为只读)静态游标显示的结果集总是和打开游标时一样,静态游标不会对数据库中的修改做出反应,不会对结果集中的列值更改做出反应,也不会显示游标打开后在数据库中新插入的记录。如果组成结果集的值被更改,新的数据值也不会在静态游标中显示。静态游标会显示出打开游标后数据表中删除的记录

(2)动态游标动态游标的特性与静态游标正好相反,当滚动游标时会动态地反映出结果集中的所有更改内容。结果集中的数据会随着用户的INSERT、UPDATE、DELETE的操作而进行改变。

(3)只进游标只进游标不可以滚动,只能将数据集中的数据从头到尾依次提取。由于只进游标无法回滚,当读取过的数据发生更改时游标无法反映,如果更改的数据恰好发生在只进游标读取的当前记录行,则可以反映出数据的变化。

(4)键集驱动游标键集驱动游标同时具备静态游标和动态游标的特点。当打开游标时,游标中的记录行顺序是固定的,键集会随着游标的打开而存储在临时表中。打开游标后数据表中插入新的记录是不可见的,除非重启游标。对非键集列的数据更改在游标滚动时可见。

3.客户端游标客户端游标用于在客户机上缓存结果集时使用。ODBC和DBlibrary都支持客户端游标。在客户端游标中,默认结果集用于将整个结果集高速缓存在客户端上,所有的游标操作都在此客户端高速缓存中执行。

小编结语:其实,客户端游标只能是只进和静态游标,不支持键集驱动游标和动态游标。在如上介绍的三种游标中,Transact-SQL游标和API游标都是运行在服务器中的,又称为服务器游标。