游标
我们可以在存储过程中用Select语句取出每一行数据进行操作,这就需要用到游标。
语法:
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 column_name [,...n]]]
下面利用游标,读取pubs数据库表 authors 中的字段au_id, au_fname并输出
--pubs 数据库
DECLARE @au_id varchar(11), @au_fname varchar(20) --声明变量
DECLARE authors_cursor CURSOR FOR SELECT au_id, au_fname FROM authors --声明一个游标
--打开游标
OPEN authors_cursor
--取出值
FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname
--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
Print '输出数据进行中……'
Print @au_id
Print @au_fname
print ' '
FETCH NEXT FROM authors_cursor INTO @au_id, @au_fname
END
--关闭游标
CLOSE authors_cursor
--释放游标
DEALLOCATE authors_cursor
执行结果如下: