游标中的static参数
以下测试用例将演示,使用static的游标和不使用的区别:
if object_id(N't_test',N'u') is not null
drop table t_test
go create table t_test(
cola int primary key,
colb char(20)) insert into t_test values(1,'a')
insert into t_test values(2,'b')
insert into t_test values(3,'c') go
if exists (SELECT OBJECT_ID FROM sys.triggers WHERE name = 'tg_test')
drop trigger tg_test
go create trigger tg_test on t_test
for update
as
declare @id int,@text char(20),@max int
select @id = cola,@text = colb from inserted
select @max = max(cola) from t_test
insert into t_test values(@max + 1,'new'+@text)
go --begin tran
--select * into #temp from t_test
declare cur_test cursor forward_only static read_only
for select * from t_test
declare @id int,@text char(20)
open cur_test
fetch next from cur_test into @id,@text while @@fetch_status=0
begin
update t_test set colb = @text where cola = @id
fetch next from cur_test into @id,@text
end
close cur_test
deallocate cur_test
--commit go select * from t_test
另外,我发现,如果不使用static参数,而直接将for select * from t_test 语句改为for select top 100 * from t_test,结果集也将是静态的,我猜测使用了top的的语句,也是将数据集的副本存入了tempdb数据库中。
当然,你可以不使用static参数,但直接提前生成一个#temp临时表,然后for select * from #temp来进行操作。
更多游标内容,可以参考此位博友的此篇文章:http://www.cnblogs.com/CareySon/archive/2011/11/01/2231381.html
游标中的static参数的更多相关文章
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- C++中的static关键字的总结
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 1.面向过程设计中的st ...
- C#中方法的参数的四种类型
C#中方法的参数有四种类型: 1. 值参数类型 (不加任何修饰符,是默认的类型) 2. 引用型参数 (以ref 修饰符声明) 3. 输出型参数 (以out 修 ...
- (转)C++中的static关键字的总结
文章转自 http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/08/2542315.html C++的static有两种用法:面向过程程序设计中的 ...
- c++中关于static关键字的问题
C++的static关键字C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. ...
- android中的layoutparams参数使用的简单总结
定义: 我们可以在Android的framework中的ViewGroup类里找到定义的类: public static class LayoutParams{...} 此类有如下注释: Layout ...
- struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式
本文演示了JSP中获取HTTP参数的几种方式,还有action中获取HTTP参数的几种方式. 1. 创建JSP页面(testParam.jsp) <%@ page language=" ...
- C# 中的可变参数方法(VarArgs)
首先需要明确一点:这里提到的可变参数方法,指的是具有 CallingConventions.VarArgs 调用约定的方法,而不是包含 params 参数的方法.可以通过MethodBase.Call ...
- Java中的可变参数以及foreach语句
Java中的可变参数的定义格式如下: 返回值类型 方法名称(类型 ... 参数名称){} foreach语句的格式如下: for ( 数据类型 变量名称 :数据名称){ ... } public ...
随机推荐
- HTTP 状态代码
转自:https://support.google.com/webmasters/answer/40132 HTTP 状态代码 如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通 ...
- 窗体前端显示(ShowWindowAsync有许多优点)
H:=FindWindow('Tfrm_MainForm','aa'); if H>0 then begin ShowWindowAsync(h,SW_MAX); SetFore ...
- Apache HTTP Server suEXEC符号链接任意文件访问漏洞
漏洞版本: Apache HTTP Server 2.2.22 漏洞描述: Apache HTTP Server是一款开源的WEB服务程序 Apache HTTP Server包含的suEXEC会不安 ...
- BZOJ3687: 简单题
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3687 小呆开始研究集合论了,他提出了关于一个数集四个问题: 1.子集的异或和的算术和. 2.子 ...
- -_-#【Better Code】throttle / debounce
浅谈javascript的函数节流 javascript函数的throttle和debounce throttle 疯狂触发事件,固定步调执行 debounce 疯狂触发事件,不会执行 var res ...
- 【ajax】reqwest
ded / reqwest All over again. Includes support for xmlHttpRequest, JSONP, CORS, and CommonJS Promise ...
- javascipt取整数四舍五入
1.丢弃小数部分,保留整数部分 parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.f ...
- php表单提交方法汇总
问题:网页上提交表单之后,PHP为什么不能获取提交的内容?然而在老版本的PHP上运行却正常. 新版的PHP已经废弃了原来的表单内容处理方式,即不再把提交的表单的内容直接复制到一个同名变量中.解决办法有 ...
- Rejected request from RFC1918 IP to public server address
Rejected request from RFC1918 IP to public server address
- SQL ID自增列从1开始重新排序 分类: SQL Server 2014-05-19 14:46 652人阅读 评论(0) 收藏
数据库中把ID自增长重置成1: 一般做法:(太麻烦) 复制表数据->删除原表.新建一张表->粘贴: 新方法: 数据库中:新建查询->复制.粘贴一下代码->修改表名,执行即可(先 ...