星空网 > 软件开发 > 数据库

浅谈游标选项 StaticKeysetDYNAMICFAST_FORWARD

接好久之前太监的一篇Blog。现在补充几个选项的介绍

所用的语句都是这个

IF OBJECT_ID('T1') IS NOT NULL  DROP TABLE T1GOCREATE TABLE T1(  ID INT PRIMARY KEY,  seq INT)DECLARE @seq INT=0WHILE @seq < 50BEGIN  INSERT INTO dbo.T1      ( ID,seq )  VALUES ( @seq+1,@seq)  SET @seq=@seq+1END

 

 

 1 DECLARE @seq INT,@ID INT=1 2  3  4 DECLARE CUR_Static CURSOR STATIC|DYNAMIC|KEYSET|FAST_FORWARD 5   FOR SELECT ID,seq FROM T1 ORDER BY ID 6  7 OPEN CUR_Static  8 FETCH NEXT FROM CUR_Static INTO @ID,@seq 9 WHILE @@FETCH_STATUS = 010 BEGIN  12   PRINT @seq13   FETCH NEXT FROM CUR_Static INTO @ID,@seq  14 END15 CLOSE CUR_Static16 DEALLOCATE CUR_Static

 

 

Static 选项

Static选项相当于从tempdb里面完全缓存一个结果集。外部修改数据,并不影响到游标本身(修改游标结果集任意一列都不影响)。使用Static选项的话,不能执行更新游标的 Current of 操作

PS:就是说你在执行这段代码的时候,另外一个窗口即时插入新数据,修改数据,删除数据也不会影响到当前游标

 

Keyset 选项

Keyset 选项也是从tempdb里面缓存一个结果集,只缓存一个主键。外部修改数据,不能修改主键,修改其它列是有效的。如果基表该行被删除了,@@Fetch_State返回值为-2

PS:就是说你在执行这段代码的时候,另外一个窗口即时插入新数据没有影响。修改非主键数据可以获取到,如果数据不存在就88啦

 

DYNAMIC 选项
每次获取都即时更新,新增,修改,删除都可以支持。动态游标不支持 ABSOLUTE 提取选项
FAST_FORWARD
指定启用了性能优化的 FORWARD_ONLY、READ_ONLY 游标。如果指定了 SCROLL 或 FOR_UPDATE,则不能也指定 FAST_FORWARD。







原标题:浅谈游标选项 StaticKeysetDYNAMICFAST_FORWARD

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

浙江跨境电子商务协会:https://www.ikjzd.com/w/1573207217675870210
中佳联供应链:https://www.ikjzd.com/w/1573207218250833922
宅急送:https://www.ikjzd.com/w/1573207218955132930
智客云服:https://www.ikjzd.com/w/1573207219571695618
湛蓝科技:https://www.ikjzd.com/w/1573207220133732354
中贸国际:https://www.ikjzd.com/w/1573207220758683650
夹江千佛岩景区门票(夹江千佛岩景区门票价格):https://www.vstour.cn/a/411232.html
武陵山大裂谷周围景点 武陵山大裂谷周围景点图片:https://www.vstour.cn/a/411233.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流