2015年年底由于项目需要,边学习边开发项目学习了游标和存储过程 特此记录

游标的使用
使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。

1. 声明游标
最简单游标声明:DECLARE <游标名>CURSOR FOR<SELECT语句>;
其中select语句可以是简单查询,也可以是复杂的接连查询和嵌套查询

2. 打开游标
非常简单,我们就打开刚才我们声明的游标mycursor
OPEN mycursor

3. 读取数据
FETCH [ NEXT | PRIOR | FIRST | LAST] FROM { 游标名  | @游标变量名 } [ INTO @变量名 [,…] ]
参数说明:
NEXT   取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。
INTO @变量名[,…]  把提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。

4. 关闭游标
CLOSE mycursor  
        
5. 删除游标
DEALLOCATE mycursor

6. 循环

在关闭游标前使用while循环进行:

while(@@FETCH_STATUS = 0)

begin

--循环内操作

FETCH [ NEXT | PRIOR | FIRST | LAST] FROM { 游标名  | @游标变量名 } [ INTO @变量名 [,…] ]  --此处必须有

end

@@FETCH_STATUS 的取值

--- 0 fetch语句成功

---1 fetch语句失败或此行不在结果集中   
---2 被提取的行不存在

7. 实例

--声明2个变量
     declare @O_ID nvarchar(20) 
     declare @A_Salary float    
     --声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同
     declare mycursor cursor for select O_ID,A_Salary from AddSalary    
     --打开游标
     open mycursor    
     --从游标里取出数据赋值到我们刚才声明的2个变量中
     fetch next from mycursor into @O_ID,@A_Salary    
     --判断游标的状态
     -- 0 fetch语句成功   
     ---1 fetch语句失败或此行不在结果集中   
     ---2 被提取的行不存在
     while (@@fetch_status=0)
     begin    
     --显示出我们每次用游标取出的值
        print ‘游标成功取出一条数据‘
        print @O_ID
        print @A_Salary    
     --用游标去取下一条记录
        fetch next from mycursor into @O_ID,@A_Salary
     end
     --关闭游标
     close mycursor
     --撤销游标
     DEALLOCATE mycursor

时间: 2024-08-01 10:31:03

2015年年底由于项目需要,边学习边开发项目学习了游标和存储过程 特此记录的相关文章

学习IOS开发项目篇--如何让程序在后台保持挂起状态

程序的状态分为:前台运行,后台挂起,后台休眠,为了让项目的网络请求保持活跃状态,需要对程序进行设置. 在applicationDidEnterBackground方法中调用下面的方法,可以让程序进入挂起状态,但在未知时间内,可能会被系统设置为休眠,如果在将程序设置为播放器,并且循环播放一个MP3文件,可以保持永久挂起状态. UIBackgroundTaskIdentifier task =[application beginBackgroundTaskWithExpirationHandler:

学习IOS开发项目篇--SDWebImage基本使用

一 .利用 UIImageView+WebCache.h中的 setImageWithURL: placeholderImage: 方法设置图片,会自动开启异步下载图片,并自动进行缓存判断操作; 注意: 需要在收到内存警告的时候, 移除 [SDImageCache sharedImageCache] cancelAll加载的图片缓存 取消[SDWebImageManager sharedManager]的下载操作 clearMemory 学习IOS开发项目篇--SDWebImage基本使用

人在千锋--网络学习之开发项目爱限免

1.完整项目开发流程: 产品经理做需求调研,编写需求 产品经理完成产品原型 项目经理开会 美工配合产品经理出效果图,剪切图 ios,android分析需要分配任务,项目经理制定开发进度 服务端和客户端制定接口 客户端根据需求完成文档 2.版本控制的作用 多人协作开发项目:每个只修改自己的模板,修改过后需要同步每个修改版本控制,每个阶段代码都有版本 解决方法:使用版本控制工具 工具:SVN  GIB(开源世界比较流行) 3.Versions的使用 1.连接到SVN服务器 利用Versions工具

【纯干货】教你如何学习嵌入式开发,嵌入式学习路线

很多学习嵌入式设计同学都会发出这样的感慨,"学嵌入式好难啊"!! 这是因为你对学习嵌入式没有掌握一个好的方法,当你掌握了,就会发现其实也很简单,今天我就总结了一些自己的学习方法给新人们参考.其实只要用心,真的很简单! 可能以下的说法您觉得听得次数太多了,但是没什么用,其实真的没用吗,你真的按照你的规划区做了吗? 学好嵌入式的前提: 一.保持良好的心态,不能急于求成.学习嵌入式并不是一朝一夕能够完成的,要一步一个脚印的坚持. 二.要有清晰的学习规划,明确学习步骤,做个计划表,明确先学什么

开始学习 IOS 开发,学习环境搭建

1,IOS环境安装 直接从 AppStore上面下载,网络环境一定要好 2.45G 2,学习视频 在网上搜索到的.youku的视频. http://v.youku.com/v_show/id_XMzI5ODAwODA4.html?f=17945592 3,开发文档 mac上面的中文文档. https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOSCh/index.html#//apple_r

嵌入式学习-4412开发板学习-迅为4412开发板can测试技术分享

迅为CAN 测试 详情了解:http://topeetboard.com  更多了解:https://arm-board.taobao.com 本文档适用的范围 ① 硬件平台 :4412精英版以及全能版开发板.(4418/6818开发板以及imx6q开发板测试的道理是一样的可能细节有些不同,在这里我没有做实验,感兴趣的可以按照这个文档测试一下) ②软件平台 :Android4.0.Android4.4.QT.ubuntu 测试程序: 这个在网盘上有提供,另外我也会上传 一.硬件连接 can 通信

李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序

前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算机.手机等硬件设备)进行交互.由于我们的最终目的是学习iOS开发,学习iOS开发的话必须在Mac系统下,因此我就在Mac系统环境下开发C语言程序,而不是在Windows环境下. 接下来,就在Mac系统环境下编写第一个C语言程序,最后把程序运行起来,跟计算机做一个小小的互动 一.编写第一个C语言程序-

開始学习swift开发

近期要開始学习swift开发了,接下来的日子,会记录学习swift的历程.

【零基础学习iOS开发】【02-C语言】02-第一个C语言程序

本文目录 前言 一.编写第一个C语言程序-Hello World 二.编译程序 三.链接程序 四.运行程序 五.总结 六.学习建议 七.clang指令汇总 回到顶部 前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算机.手机等硬件设备)进行交互.由于我们的最终目的是学习iOS开发,学习iOS开发的话必须在Mac系统下,因此我就在Mac系统环境下开发