游標使用順序:
1、定義游標
2、打開游標
3、使用游標
4、關閉游標
5、釋放游標
transact-sql:
declare 游標名 cursor [local | global][forward_only | scroll][static | keyset | dynamic ] [read_only | scroll_locks]
for selet語句 [for update[of 列名[,列名]]
注:local 局部游標 global 全局游標
forward_only 僅向前 scroll 滾動
static 靜態 keyset 鍵集 dynamic 動態
read_only 只讀 scroll_locks 鎖定游標當前行
獲取游標的數據
fetch [[next | prior | first | last |
absolute{ n | @nvar | relative { n | @nvar}]
from ] 游標名 [into 變量]
注:
next 下一行 prior 上一行 first 第一行
last 最后一行 absolute n 第n行
relative n 當前位置開始的第n行
into 變量 把當前行的各字段值賦值給變量
游標狀態變量:
@@fetch_status 游標狀態
0 成功 -1 失敗 -2 丟失
@@cursor_rows 游標中結果集中的行數
n 行數 -1 游標是動態的 0 空集游標
操作游標的當前行:
current of 游標名
以下例子,在sql server 2000 測試成功
use pubs
go
declare @auid char(12),@aulname varchar(20),@aufname varchar(20), @st char(2),@auinfo varchar(50)
declare auth_cur cursor for
select au_id, au_lname, au_fname, state
from authors
open auth_cur

fetch next from auth_cur into @auid,@aulname,@aufname, @st
while (@@fetch_status=0)
begin
print '作者編號: '+@auid
print '作者姓名: '+@aulname+','+@aufname
print '所在州: '+@st
print '--------------------------'
fetch next from auth_cur into @auid,@aulname,@aufname, @st
end

close auth_cur
deallocate auth_cur
新聞熱點
疑難解答