示例场景:循环遍历数据库中所有的数据表,然后再遍历每张数据表中的所有字段描述。

具体代码如下所示:

/*****************************************实例:使用游标进行双重遍历
*****************************************/--定义遍历的表变量@TableName和数据表游标C_Table
DECLARE @TableName NVARCHAR(100)
--查询出数据库所有的用户表
DECLARE C_Table CURSOR FOR SELECT name FROM sysobjects WHERE xtype='u'
--打开游标、获取第一条数据
OPEN C_Table
FETCH NEXT FROM C_Table INTO @TableName
WHILE(@@FETCH_STATUS=0)
BEGIN--这里就是循环遍历的数据表名称--PRINT @TableName--遍历表@TableName的字段--定义遍历的字段名称变量@TableFieldName、字段描述变量@TableFieldDesc和表字段游标C_TableFieldDECLARE @TableFieldName NVARCHAR(100),@TableFieldDesc NVARCHAR(100)--查询出该数据表所有的字段及其描述DECLARE C_TableField CURSOR FORSELECT b.name TableFieldName,CAST(c.value AS NVARCHAR(100)) TableFieldDesc FROM sys.tables aINNER JOIN sys.columns b ON b.object_id = a.object_idLEFT JOIN sys.extended_properties c ON c.major_id = b.object_id AND c.minor_id = b.column_idWHERE a.name =@TableName--打开游标、获取第一条数据OPEN C_TableFieldFETCH NEXT FROM C_TableField INTO @TableFieldName,@TableFieldDescWHILE(@@FETCH_STATUS=0)BEGIN--这里就是循环遍历的字段名称和描述PRINT '数据表:'+@TableName+',字段:'+@TableFieldName+',描述:'+@TableFieldDescFETCH NEXT FROM C_TableField INTO @TableFieldName,@TableFieldDescENDCLOSE C_TableFieldDEALLOCATE C_TableFieldFETCH NEXT FROM C_Table INTO @TableName
END
--关闭和释放游标
CLOSE C_Table
DEALLOCATE C_Table

测试效果:

SqlServer中使用游标进行双重遍历相关推荐

  1. SQLServer之ISO游标使用

    什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合. 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据 ...

  2. 把sqlserver中存储过程改写到oracle中

    一同学叫我帮忙改存储过程sqlserver----->oralce数据中: sqlserver中存储过程: SET QUOTED_IDENTIFIER ON     GO  SET ANSI_N ...

  3. mongo中的游标与数据一致性的取舍

    除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...

  4. 什么是mysql的游标_数据库中的游标到底是什么意思

    数据库中的游标到底是什么意思 关注:177  答案:2  mip版 解决时间 2021-01-15 20:54 提问者更无风月 2021-01-15 15:53 数据库中的游标到底是什么意思 最佳答案 ...

  5. SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数

    SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 1 USE [tempdb] 2 GO 3 4 CREATE TABLE # ...

  6. 数据库:SQLServer中in和 exists函数用法笔记

    今天给大家分享一下SQLServer中in和 exists 用法,希望能对大家有所帮助. 一.IN 用法 确定指定的值是否与子查询或列表中的数据相匹配. 1.1 语法格式 test_expressio ...

  7. 在MySQL中使用游标和for循环

    目录 MySQL游标的属性 创建MySQL游标 声明语句 声明一个变量 为 SELECT语句声明游标 公开声明 Fetch语句 关闭声明 使用MySQL游标 MySQL存储过程 MySQL游标的注意事 ...

  8. SqlServer中Sql语句的逻辑执行顺序

    准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...

  9. java 建树源码_Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】...

    import java.util.ArrayDeque; import java.util.Queue; import java.util.Stack; //二叉树的建树,前中后 递归非递归遍历 层序 ...

  10. 简单介绍SQLserver中的declare变量用法

    这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...

最新文章

  1. linux目录都是什么意思,linux中的基本的目录结构都是什么意思,初学者都应该有印象-tmp是什么文件...
  2. vue中弹窗input框聚焦_Vue 中如何让 input 聚焦?(包含视频讲解)
  3. 无法添加选择的Web部件
  4. C++中void和void*指针的含义 (指针类型的含义)
  5. primefaces_懒惰的JSF Primefaces数据表分页–第1部分
  6. checkbox全选和反选功能
  7. 计算机视觉专业要学什么课程,[08本]“计算机视觉基础”课程介绍和课件
  8. 《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
  9. 大疆反腐45人被查处 被开除员工喊话CEO汪滔自称“被冤枉”
  10. zoj 3228 覆盖及非覆盖串的多次匹配
  11. mysql5.7主从恢复_MySQL 5.7 开启主从同步开启GTID恢复数据
  12. fx系列微型可编程控制器 通信_西门子系列资料(64本电子书+PLC视频+软件),整理了很久...
  13. Bex5服务启动时提示概念表超限
  14. 20191122 视频版控制台上的极乐净土
  15. 中国科学家dna计算机,我国首台DNA计算机问世
  16. Unity 3D项目-Adventure of JM Robot
  17. excel服务器源码,excel链接服务器源码
  18. 来了,2020全球算力大会暨新基建矿业峰会,首批重磅嘉宾阵容出炉!
  19. 成功项目策划“四要素”
  20. 远程连接腾讯云主机中MySQL

热门文章

  1. [转]java中的io笔记
  2. js request 应用举例
  3. 北京供销大数据集团BGP网络商用 经实测网络质量优异
  4. Redis集群生产环境高可用方案实战过程
  5. chattr与lsattr命令
  6. 简单实用的 Ubuntu 快捷键
  7. POJ1700 Crossing River
  8. 解决电脑总是“正在识别”,无法获取合法地址
  9. windows 不能确定用户和计算机名称
  10. Win7中如何删除访问共享时所保存的用户名和密码