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 游标及实例(四)相关推荐

  1. MS SQL Server 游标及实例(三)

    Sql server 中游标具体实例介绍:   表一 OriginSalary 表二 AddSalary 现在有2张表,一张是OriginSalary表--工资表,有三个字段0_ID 员工号(NVAR ...

  2. oracle忘记实例名,Oracle的安装和MS SQL Server实例名

    Oracle 初始密码: internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 最后一个用户 ...

  3. 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中新的数据库对象 ...

  4. MS SQL Server数据库原理

    MS SQL Server数据库原理 一. 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据).数据库管理系统(软件).数据库管理员(人员).硬件平台(硬件)和软件平台 ...

  5. SQL错误提示档案(3):SQL Server连接中的四个最常见错误

    SQL   Server连接中的四个最常见错误:         一."SQL   Server   不存在或访问被拒绝"          一般说来,有以下几种可能性:     ...

  6. 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...

    作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...

  7. 聚焦索引与非聚焦索引及其查询效率 (MS SQL SERVER)

    郑重声明:本文转自互联网,出处不明,无法注明出处,在此对笔者表示感谢. 随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时 ...

  8. 删除 SQL Server 的默认实例

    在网上找到下面几种方法,本人使用的是第一种,很实用. 1.删除 SQL Server 的特定实例 若要删除 SQL Server 的某个特定实例,请按照以下步骤操作:  找到并删除%drive%:\\ ...

  9. 在linux上配置unixODBC和FreeTDS访问MS SQL Server.

    一, 安装 unixODBC 下载安装包. 在 RedHat 安装光盘上就有 unixODBC-2.2.11-1.RHEL4.1.i386.rpm unixODBC-devel-2.2.11-1.RH ...

  10. 重装MS SQL Server 2000前必须彻底删除原安装文件!

    今天重装MS SQL Server 2000,装了几次都提示出错,查看事件,显示 driver={sql server};server=harry;UID=sa;PWD=;database=maste ...

最新文章

  1. cimiss数据_CIMISS,你太优秀了!
  2. shiro 同时实现url和按钮的拦截_一个“保存”按钮同时存在“增删改”三种操作,该如何去实现?...
  3. jQuery中FormData的使用
  4. Day 4:PredictionIO——如何创建一个博客推荐器
  5. 前端学习(596):使用network waterfall分析页面载入性能
  6. hibernate oracle查询最大值_Java大数据:Mybatis和Hibernate对比分析
  7. 2d游戏地图编辑器_C语言实现大型2D格斗游戏,1.8万行代码!
  8. eclipse 调试nodejs 发生Failed to connect to standalone V8 VM错误的解决方案
  9. Bailian2715 谁拿了最多奖学金【分段计算处理】(Vijos P1001)
  10. C#毕业设计——基于C#+asp.net+sqlserver的网上书店系统设计与实现(毕业论文+程序源码)——网上书店系统
  11. 俄亥俄州立大学宣布开放 Swift 编程和 App 开发课程
  12. 伽罗华有限域的FEC
  13. 2022年6月编程语言排行,第一名居然是它?!
  14. Xcode免证书打包ipa
  15. unity 阿拉伯文显示
  16. 简单测试IP地址连通性
  17. 十分钟搞定SSD1963液晶屏驱动
  18. linux libuv,libuv queue的实现
  19. windows 2003 下SERVU:无法开始服务器.服务器执行缺少
  20. [读书笔记]Core Java: Volume I - Fundamentals Chapter 1

热门文章

  1. 通用算法(ML,DL)分类判定指标:召回率 Recall、精确度Precision、准确率Accuracy等
  2. 360 绑架浏览器首页的解决方法
  3. SVN源码泄露漏洞总结
  4. plsql提示列快捷键_我收藏的几个更快搬砖的vscode快捷键
  5. ucla计算机科学和数学专业,UCLA的CS「加州大学洛杉矶分校计算机科学系」
  6. mysql lower case_mysql lower-case-table-names参数
  7. 注解 @EnableFeignClients 与 @ComponentScan 有冲突
  8. SCUT - 12 - 西方国家 - 矩阵快速幂
  9. 单例设计模式(懒汉式)(饿汉式)
  10. java ArrayList添加元素全部一样