|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有了数据以后,我们就要想一个比较统一的方法来闪回。上面我们说了对于DML操作,可以通过反向执行所有逆操作来实现,对于语句里面的DDL,只能直接跳过。原因是一个DDL不一定有直接的逆操作。游标游标的范例:
1、静态游标(不检测数据行的变更)
2、静态游标(反应一切数据行的改动)
3、仅向前游标(不撑持转动)
4、键集游标(能反应修正,但不克不及正确反应拔出、删除)游标利用按次:
1、界说游标
2、翻开游标
3、利用游标
4、封闭游标
5、开释游标
Transact-SQL:
declare游标名cursor[LOCAL|GLOBAL][FORWARD_ONLY|SCROLL][STATIC|KEYSET|DYNAMIC][READ_ONLY|SCROLL_LOCKS]
forselet语句[forupdate[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最初一行ABSOLUTEn第n行
RELATIVEn以后地位入手下手的第n行
into变量把以后行的各字段值赋值给变量
游标形态变量:
@@fetch_status游标形态
0乐成-1失利-2丧失
@@cursor_rows游标中了局会合的行数
n行数-1游标是静态的0空集游标
操纵游标确当前行:
currentof游标名
以下例子,在SQLSERVER2000测试乐成
usepubs
go
declare@auidchar(12),@aulnamevarchar(20),@aufnamevarchar(20),@stchar(2),@auinfovarchar(50)
declareauth_curcursorfor
selectau_id,au_lname,au_fname,state
fromauthors
openauth_cur
fetchnextfromauth_curinto@auid,@aulname,@aufname,@st
while(@@fetch_status=0)
begin
print作者编号:+@auid
print作者姓名:+@aulname+,+@aufname
print地点州:+@st
print--------------------------
fetchnextfromauth_curinto@auid,@aulname,@aufname,@st
end
closeauth_cur
deallocateauth_cur既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 |
|