浅谈游标选项 Static|Keyset|DYNAMIC|FAST_FORWARD
接好久之前太监的一篇Blog。现在补充几个选项的介绍
所用的语句都是这个
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
DECLARE @seq INT,@ID INT=1 DECLARE CUR_Static CURSOR STATIC|DYNAMIC|KEYSET|FAST_FORWARD
FOR SELECT ID,seq FROM T1 ORDER BY ID OPEN CUR_Static
FETCH NEXT FROM CUR_Static INTO @ID,@seq
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @seq
FETCH NEXT FROM CUR_Static INTO @ID,@seq
END
CLOSE CUR_Static
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。
浅谈游标选项 Static|Keyset|DYNAMIC|FAST_FORWARD的更多相关文章
- 浅谈Java中static关键字、权限修饰符
1.实例变量:也称非静态成员变量,实例变量前没有static关键字,用来描述同一类事物的公共属性.访问方式:对象名.变量名.实例变量存储在堆区,对象有n个,数据就有n个.实例变量随着对象的创建而创建, ...
- 浅谈this和static
一.this关键字 一个比较经典的使用: 输出的结果是:12 1.this关键字只能在方法的内部使用,表示对“调用方法的那个对象”的引用,this的用法和其他对象引用并无不同.注意一点:在方法的内部调 ...
- 浅谈Java中static作用--转
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何 ...
- 浅谈 Sql Server 游标
查询语句可能返回多条记录,如果数据量非常大,需要使用游标来逐条读取查询结果集中的记录.应用程序可以根据需要滚动或浏览其中的数据.本篇介绍游标的概念.分类.以及基本操作等内容. 一:认识游标游标是SQL ...
- 转载 浅谈C/C++中的static和extern关键字
浅谈C/C++中的static和extern关键字 2011-04-21 16:57 海子 博客园 字号:T | T static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.ext ...
- 【原创】浅谈指针(十二)关于static(上)
0.前言 这个系列基本上是一月一更到两月一更 今天写一篇关于static的,内含大量干货,做好准备 1.基础知识的回顾 1.1.内存的种类 一般来说,我们之前已经讲过的变量(或者说是内存)可以大体分为 ...
- 浅谈动态规划(Dynamic Programming)
利用Leetcode#198打劫家舍 浅谈动态规划 Origin:https://leetcode-cn.com/problems/house-robber/ 题目本身不难,就是一个动态规划的问题.在 ...
- Android性能优化的浅谈
一.概要: 本文主要以Android的渲染机制.UI优化.多线程的处理.缓存处理.电量优化以及代码规范等几方面来简述Android的性能优化 二.渲染机制的优化: 大多数用户感知到的卡顿等性能问题的最 ...
- .NET(C#):浅谈程序集清单资源和RESX资源
原文:.NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
随机推荐
- Delphi Berlin 10.1 for iOS 成生 info.plist 顺序改变了
在 Delphi Seattle 10 update 1 版本(含之前版本),只要 Project > Build 会立即生成 info.plist 如果需要修改 info.plist 可以利用 ...
- sp_get_menu函数使用分析
function sp_get_menu($id="main",$effected_id="mainmenu",$filetpl="<span ...
- Nibbler – 免费的网站测试和指标评分工具
Nibbler 是一款免费的工具,用于测试网站的各个方面指标.输入任意网站的地址,Nibbler 会给你一份报告,列出网站的10个关键领域的分数,包括可访问性,用户体验,搜索引擎优化,社交媒体和技术等 ...
- 使用 HTML5 WebGL 实现逼真的云朵效果
这里给大家展示一个使用 HTML5 WebGL 实现超逼真的云朵效果.WebGL 是一项在网页浏览器呈现3D画面的技术,有别于过去需要安装浏览器插件,通过 WebGL 的技术,只需要编写网页代码即可实 ...
- 【初探移动前端开发05】jQuery Mobile (下)
前言 继续我们移动端的学习,今天到了List相关了. 本文例子请使用手机查看 List列表 在移动设备平台下,由于移动设备屏幕比较小,我们又是用手在上面点击的触屏方式,传统的列表模式在手机上就不太友好 ...
- php代码美化/格式化 还原 -问题
使用某个PHP代码格式化的工具.源代码: if ($this->_standardize_newlines == TRUE) { if (strpos($str, "\r") ...
- JavaScript学习笔记-JSON对象
JSON 是一种用来序列化对象.数组.数值.字符串.布尔值和 null 的语法.它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 ...
- ubuntu制作本地源
背景 平时apt-get install安装软件时,下载的deb文件都会存放在/var/cache/apt/archives/下,为了今后重装或给别人用,特别是没有网络时,这些deb文件实际上是可以派 ...
- xmpp整理笔记:xmppFramework框架的导入和介绍
一个将要开发xmpp的项目,建议在项目刚创建就导入框架,这样可以避免一些自己操作失误造成不必要的损失. xmpp中最常用的框架就是 xmppFrameWork 往期回顾: xmpp整理笔记:环境的快速 ...
- CoreDataManager-OC版-兼容iOS10以前的版本
头文件: #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> /** CoreData管理器 */ ...