游标相当于c++中的指针。通过游标,我们可以在数据库中对数据行集合进行操作。
1.创建游标
过程:
a.声明游标:
声明游标的语法有两种,一种是基于SQL-92标准的语法形式,另一种是扩展的T-SQL语法形式,两种方式不可混用。
基于SQL-92标准形式:
cursor_name:为声明的游标名字。
INSENSITIVE:将提出来的数据复制到tempdb数据库中创建的临时表内。
SCROLL:通过使用该关键字,改以实现以下功能:
FIRST 去首行数据
LAST 取末行数据
PRIOR 取当前行的前一行数据
NEXT 取当前行的后一行数据
RELATIVE 按相对位置取数据
ABSOLUTE 按绝对位置取数据
SELECT语句:定义游标要处理的结果集合。
READ ONLY: 声明游标只读,不允许进行数据更新操作。
UPDATE OF column1, column2 ......:定义游标中可更新的列。
扩展的T-SQL语法形式:
1.创建游标
过程:
a.声明游标:
声明游标的语法有两种,一种是基于SQL-92标准的语法形式,另一种是扩展的T-SQL语法形式,两种方式不可混用。
基于SQL-92标准形式:
DECLARE cursor_name [INSENSITIVE][SCROLL] CURSOR
FOR select_statement
[FOR {READ ONLY | UPDATE [OF column1,column2 ]}]
说明:FOR select_statement
[FOR {READ ONLY | UPDATE [OF column1,column2 ]}]
cursor_name:为声明的游标名字。
INSENSITIVE:将提出来的数据复制到tempdb数据库中创建的临时表内。
SCROLL:通过使用该关键字,改以实现以下功能:
FIRST 去首行数据
LAST 取末行数据
PRIOR 取当前行的前一行数据
NEXT 取当前行的后一行数据
RELATIVE 按相对位置取数据
ABSOLUTE 按绝对位置取数据
SELECT语句:定义游标要处理的结果集合。
READ ONLY: 声明游标只读,不允许进行数据更新操作。
UPDATE OF column1, column2 ......:定义游标中可更新的列。
扩展的T-SQL语法形式:
DECLARE cursor_name CURSOR
[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement
[FOR UPDATE [OF column1, column2 .]]
(未完)[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement
[FOR UPDATE [OF column1, column2 .]]