浅谈游标选项 Static|Keyset|DYNAMIC|FAST_FORWARD
2016-05-05 17:22
246 查看
接好久之前太监的一篇Blog。现在补充几个选项的介绍
所用的语句都是这个
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。
所用的语句都是这个
IF OBJECT_ID('T1') IS NOT NULL DROP TABLE T1 GO CREATE TABLE T1 ( ID INT PRIMARY KEY, seq INT ) DECLARE @seq INT=0 WHILE @seq < 50 BEGIN INSERT INTO dbo.T1 ( ID,seq ) VALUES ( @seq+1,@seq) SET @seq=@seq+1 END
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 = 0 10 BEGIN 12 PRINT @seq 13 FETCH NEXT FROM CUR_Static INTO @ID,@seq 14 END 15 CLOSE CUR_Static 16 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。
相关文章推荐
- Rollback 语句 在08R2版本
- SqlServer链接MySql操作步骤
- 作死的玩一下计算列
- 从0开始学复制~我的复制学习历程 (一) 简单的快照复制处理
- 使用For XML PATH 会影响Cross Apply 返回
- 一个update的小故事
- 行大小计算测试
- Sql Server 2008R2 遇到了BCP导入各种中文乱码的问题
- 简析一下SQL Server里面Fast_Forword 和 SRROLL 的区别
- Filestream 使用简单步骤
- 将一列包含多个ID拆分多行
- Sql Server 添加外部程序集基本操作
- 使用scrapy的定制爬虫-第三章-爬虫的javascript支持
- IDENT_CURRENT ,@@identity,SCOPE_IDENTITY() 之间对比
- RestFul简介以及在springmvc中的应用
- 页面渲染——简化paint复杂程度和区域
- python实现Kmeans文本聚类,通过PCA降维和Matplotlib显示聚类3d三维图像
- 小括号与花括号小括号与花括号
- 面向对象思想的理解
- mysql自动增长的有关问题,怎么恢复从1开始