MS SQL Server 游标及实例(四)
1.3.5删除游标
DEALLOCATE mycursor
1.3.6 实例训练
如上我介绍完了游标使用的5个步骤,那现在我们就来上上手,练习用游标取出表2 AddSalary的数据。
为了运行我们自己创建的游标,我们将游标写在存储过程里,方便我们看到游标的整个使用过程。
在sqlserver2000中新建一个存储过程:
-->CREATE PROCEDURE PK_Test
AS //声明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
GO
通过上面的注释,我想大家都明白了整个游标的创建过程了吧。但是我们现在还是一个抽象的了解,我们学任何知识,都要用于实践,这样才能使抽象的东西变的具体。
那我们就运行这个存储过程,看看游标到底是怎么取值的:
我们打开SQLSERVER2000的查询分析器,制定好数据库后,我们执行存储过程
Exec PK_Test
让我看看效果吧(如图)
通过实例我们可以看到游标逐行逐行都把值都取出来了。那么我请大家先不看下面的答案,在引言部分我刚才留个大家的问题试一下能不能解决?
现在我们写一个存储过程解决刚才我留下来的问题吧
-->CREATE PROCEDURE PK_SalaryAdd
AS
declare @O_ID nvarchar(20),@A_Salary float
declare mycursor cursor for select O_ID,A_Salary from AddSalary
open mycursor
fetch next from mycursor into @O_ID,@A_Salary
while(@@fetch_status = 0)
begin
Update OriginSalary set O_Salary=O_Salary+@A_Salary where O_ID=@O_ID
fetch next from mycursor into @O_ID,@A_Salary
end
close mycursor
deallocate mycursor
GO
按照老方法,我们用查询分析器来执行我们的存储过程,看看结果是怎么样的?
Exec PK_SalaryAdd
让我看看效果吧(如图)
执行存储过程,看到我们影响了3行数据
用sql语句,看看表OriginSalary现在的结果:
转载于:https://blog.51cto.com/3941954/735474
MS SQL Server 游标及实例(四)相关推荐
- MS SQL Server 游标及实例(三)
Sql server 中游标具体实例介绍: 表一 OriginSalary 表二 AddSalary 现在有2张表,一张是OriginSalary表--工资表,有三个字段0_ID 员工号(NVAR ...
- oracle忘记实例名,Oracle的安装和MS SQL Server实例名
Oracle 初始密码: internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 最后一个用户 ...
- Oracle 9i与MS SQL Server 2000之比较连载五.zz
http://kb.cnblogs.com/a/1153156 Oracle 9i与MS SQL Server 2000之比较连载五 2008-04-14 18:13 四.Oracle中新的数据库对象 ...
- MS SQL Server数据库原理
MS SQL Server数据库原理 一. 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据).数据库管理系统(软件).数据库管理员(人员).硬件平台(硬件)和软件平台 ...
- SQL错误提示档案(3):SQL Server连接中的四个最常见错误
SQL Server连接中的四个最常见错误: 一."SQL Server 不存在或访问被拒绝" 一般说来,有以下几种可能性: ...
- 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...
作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...
- 聚焦索引与非聚焦索引及其查询效率 (MS SQL SERVER)
郑重声明:本文转自互联网,出处不明,无法注明出处,在此对笔者表示感谢. 随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时 ...
- 删除 SQL Server 的默认实例
在网上找到下面几种方法,本人使用的是第一种,很实用. 1.删除 SQL Server 的特定实例 若要删除 SQL Server 的某个特定实例,请按照以下步骤操作: 找到并删除%drive%:\\ ...
- 在linux上配置unixODBC和FreeTDS访问MS SQL Server.
一, 安装 unixODBC 下载安装包. 在 RedHat 安装光盘上就有 unixODBC-2.2.11-1.RHEL4.1.i386.rpm unixODBC-devel-2.2.11-1.RH ...
- 重装MS SQL Server 2000前必须彻底删除原安装文件!
今天重装MS SQL Server 2000,装了几次都提示出错,查看事件,显示 driver={sql server};server=harry;UID=sa;PWD=;database=maste ...
最新文章
- cimiss数据_CIMISS,你太优秀了!
- shiro 同时实现url和按钮的拦截_一个“保存”按钮同时存在“增删改”三种操作,该如何去实现?...
- jQuery中FormData的使用
- Day 4:PredictionIO——如何创建一个博客推荐器
- 前端学习(596):使用network waterfall分析页面载入性能
- hibernate oracle查询最大值_Java大数据:Mybatis和Hibernate对比分析
- 2d游戏地图编辑器_C语言实现大型2D格斗游戏,1.8万行代码!
- eclipse 调试nodejs 发生Failed to connect to standalone V8 VM错误的解决方案
- Bailian2715 谁拿了最多奖学金【分段计算处理】(Vijos P1001)
- C#毕业设计——基于C#+asp.net+sqlserver的网上书店系统设计与实现(毕业论文+程序源码)——网上书店系统
- 俄亥俄州立大学宣布开放 Swift 编程和 App 开发课程
- 伽罗华有限域的FEC
- 2022年6月编程语言排行,第一名居然是它?!
- Xcode免证书打包ipa
- unity 阿拉伯文显示
- 简单测试IP地址连通性
- 十分钟搞定SSD1963液晶屏驱动
- linux libuv,libuv queue的实现
- windows 2003 下SERVU:无法开始服务器.服务器执行缺少
- [读书笔记]Core Java: Volume I - Fundamentals Chapter 1
热门文章
- 通用算法(ML,DL)分类判定指标:召回率 Recall、精确度Precision、准确率Accuracy等
- 360 绑架浏览器首页的解决方法
- SVN源码泄露漏洞总结
- plsql提示列快捷键_我收藏的几个更快搬砖的vscode快捷键
- ucla计算机科学和数学专业,UCLA的CS「加州大学洛杉矶分校计算机科学系」
- mysql lower case_mysql lower-case-table-names参数
- 注解 @EnableFeignClients 与 @ComponentScan 有冲突
- SCUT - 12 - 西方国家 - 矩阵快速幂
- 单例设计模式(懒汉式)(饿汉式)
- java ArrayList添加元素全部一样