目录

  • 第1单元    数据库系统导论
    • ● 任务1.1  数据库基本概念
    • ● 任务1.2  设计E—R 图
    • ● 任务1.3   将E-R图转换成关系模型
    • ● 任务1.4   练习与作业
    • ● 教与学参考资源
  • 第2单元   认识SQL SERVER数据库
    • ● 任务2.1 数据库应用场景
    • ● 任务2.3  SQL  Server 数据库安装
    • ● 任务2.4 SQL Server 的管理
    • ● 任务2.5  使用SSMS连接数据库
    • ● 教与学参考资源
  • 第3单元  创建和管理数据库
    • ● 任务3.1 创建数据库
    • ● 任务3.1(2)  命令创建数据库
    • ● 任务3.2 管理数据库
    • ● 任务3.2(2) 查看、收缩数据库
    • ● 教与学参考资源
  • 第4单元 创建和管理数据库表
    • ● 任务4.1 SQL Server常用数据类型
    • ● 任务4.2  创建数据表
    • ● 任务4.3  命令创建表
    • ● 任务4.4 实施完整性约束
    • ● 教与学参考资源
  • 第 5 单元   查询数据表
    • ● 任务5.1 单表数据查询
    • ● 任务5.2 多表数据查询
    • ● 任务5.3 嵌套查询
    • ● 任务5.4 合并查询结果
    • ● 教与学参考资源
  • 第6单元  管理表中数据
    • ● 任务6.1   添加数据
    • ● 任务6.2  修改数据
    • ● 任务6.3  删除数据
    • ● 习题与训练
    • ● 教与学参考资源
  • 第7单元  使用索引和视图
    • ● 任务7.1  使用索引
    • ● 使用T-SQL创建索引
    • ● 任务7.2  使用视图
    • ● 使用T-SQL语句创建视图
    • ● 教与学参考资源
  • 第8单元 Transact-SQL语言编程
    • ● 任务8.1   声明和使用变量
    • ● 任务8.2   流控语句
    • ● 任务8.3   常用系统函数
    • ● 任务8.4   创建自定义函数
    • ● 教与学参考资源
  • 第9单元  事务和锁
    • ● 任务   9.1     事务
    • ● 事务的基本操作
    • ● 任务9.2    锁
    • ● 死锁及避免方法(例)
    • ● 教与学参考资源
  • 第10单元  创建和管理存储过程
    • ● 任务10.1 存储过程及优点
    • ● 任务10.2 创建和执行存储过程
    • ● 任务10.3   存储过程参数和返回值
    • ● 任务10.4 修改、删除、 重新编译存储过程
    • ● 教与学参考资源
  • 第11单元 创建和管理触发器
    • ● 任务1 触发器的作用和分类
    • ● 任务2 触 发器的创建与执行
    • ● 任务3 创建级联触发器
    • ● 任务4 修改、删除触发器
  • 第12单元 创建和使用游标
    • ● 任务1  游标的作用及使用步骤
    • ● 任务2  创建基本游标
    • ● 任务3  使用变量保存游标数据
    • ● 任务4  使用循环环提取游标数据
  • 第13单元 SQL Server用户管理
    • ● 任务1数据库安全管理概述
    • ● 任务2SQL Server 安全机制
    • ● 任务3 账号、角色及权限管理
    • ● 任务4数据库完整性管理
    • ● 任务5 数据库的备份与还原
    • ● 任务6   数据的导入与导出
  • 第14单元  综合应用案例
    • ● 概述
    • ● 需求分析
    • ● 概述设计-逻辑设计- 物理设计
    • ● 编写数据库设计说明书
  • 学生做项目成果展示
    • ● 项目一  设计《我班同学数据库》
    • ● 项目二  设计《(Teaching)教学数据库》
    • ● 项目三  数据库应用系统设计开发项目
    • ● 项目四 《华夏-宿舍管理系统》设计开发
    • ● 项目五   综合实训大作业
    • ● 综合实训团队项目大作业
    • ● 学生完成项目摘录展示
  • 总复习与综合训练
    • ● 总复习
    • ● 综合训练一
    • ● 综合训练二
    • ● 综合训练三
    • ● 综合训练四
    • ● 综合训练五
    • ● 简答综合训练
  • 在线专题测验
    • ● 自检自测一
    • ● 自检自测二
  • 拓展   数据库管理工具平台  Navicat
    • ● 关于Navica
    • ● Navicat 的系统需求
    • ● Navicat 的用户界面
    • ● Navicat 创建数据库对象
    • ● 在Navicat创建的SQL 程序脚本
    • ● 在Navicat创建的SQL  server 脚本(2)
    • ● 综合实训(1)
    • ● 综合实训(2)
  • 技术拓展   (MYSQL)数据库技术与应用
    • ● MYSQL技术
  • 教与学图片剪影
    • ● 教学团队
    • ● 学生学习实训
    • ● 活动与交流
任务3  使用变量保存游标数据

任务3  使用变量保存游标数据

(三) 定义游标变量

CURSOR关键字还可以作为数据类型用于定义游标变量,其语法格式如下。

DECLARE {@变量名 CURSOR} [,…n]

游标变量定义后,必须和游标相关联才能实现游标操作。 

(1)分别定义游标变量与游标,之后用SET语句将游标赋给游标变量。


【例4】定义游标变量,将前面定义的“学生_cura”游标赋给游标变量。

 USE 教务数据库

  GO

  DECLARE @学生游标 CURSOR 

  SET @学生游标 = 学生_cura 

(2)定义游标变量后,直接用SET语句创建游标与游标变量的关联。

【例5】定义游标变量,将游标变量与游标进行关联。

 USE 教务数据库

  GO

  DECLARE @学生游标b CURSOR

  SET @学生游标b =  CURSOR 

  FOR SELECT * FROM 学生表


/*完整示例  */

USE 教务数据库

  GO

  DECLARE  @学生游标b  CURSOR

  SET @学生游标b=  CURSOR 

  FOR SELECT * FROM 学生表

  OPEN @学生游标b

  FETCH NEXT FROM @学生游标b

WHILE @@fetch_status = 0

BEGIN

 FETCH NEXT FROM @学生游标b

END

CLOSE @学生游标b

DEALLOCATE  @学生游标b


【例】 声明一个游标Cur_SX,并

使用存储过程sp_cursor_list 报告该游标的属性,SQL语句及运行结果如图所示。

USE  教务数据库

GO

DECLARE Cur_SX CURSOR FOR  --声明游标Cur_SX

 SELECT 姓名    --定义游标结果集(查询Name字段的结果)

FROM 学生表

WHERE 姓名 LIKE '刘%'     --约束条件是以王开头的名字

OPEN Cur_SX     --打开游标Cur_SX

DECLARE @Report CURSOR    --声明游标变量@Report

--执行存储过程sp_cursor_list

EXEC  master.dbo.sp_cursor_list @cursor_return = @Report OUTPUT, 

      @cursor_scope = 2    --报告所有全局游标

FETCH NEXT from @Report     --提取紧跟当前行之后的结果行

WHILE (@@FETCH_STATUS <> -1)       --如果FETCH语句执行成功

BEGIN

   FETCH NEXT from @Report     --继续提取紧跟当前行之后的结果行

END     

CLOSE @Report      --关闭游标@Report

DEALLOCATE @Report     --释放游标@Report

GO

CLOSE Cur_SX   --关闭游标Cur_SX

DEALLOCATE Cur_SX    --释放游标Cur_SX

GO


练习:分析下面程序功能

SELECT  *  FROM  教务数据库.dbo.学生表

GO


UPDATE  教务数据库.dbo.学生表   SET 性别='女' 

DECLARE cur1 CURSOR 

FOR SELECT 学号,姓名,性别

FROM 教务数据库.dbo.学生表 

where 学号='201905101'

FOR UPDATE OF 姓名,性别

OPEN cur1

GO

FETCH NEXT FROM cur1

GO

UPDATE 教务数据库.dbo.学生表 

SET 姓名='谢小明'

WHERE CURRENT OF cur1

GO

CLOSE cur1

DEALLOCATE cur1

GO


SELECT  *  FROM  教务数据库.dbo.学生表

GO