SqlServer中使用游标进行双重遍历
示例场景:循环遍历数据库中所有的数据表,然后再遍历每张数据表中的所有字段描述。
具体代码如下所示:
/*****************************************实例:使用游标进行双重遍历
*****************************************/--定义遍历的表变量@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中使用游标进行双重遍历相关推荐
- SQLServer之ISO游标使用
什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合. 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据 ...
- 把sqlserver中存储过程改写到oracle中
一同学叫我帮忙改存储过程sqlserver----->oralce数据中: sqlserver中存储过程: SET QUOTED_IDENTIFIER ON GO SET ANSI_N ...
- mongo中的游标与数据一致性的取舍
除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...
- 什么是mysql的游标_数据库中的游标到底是什么意思
数据库中的游标到底是什么意思 关注:177 答案:2 mip版 解决时间 2021-01-15 20:54 提问者更无风月 2021-01-15 15:53 数据库中的游标到底是什么意思 最佳答案 ...
- SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数
SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 1 USE [tempdb] 2 GO 3 4 CREATE TABLE # ...
- 数据库:SQLServer中in和 exists函数用法笔记
今天给大家分享一下SQLServer中in和 exists 用法,希望能对大家有所帮助. 一.IN 用法 确定指定的值是否与子查询或列表中的数据相匹配. 1.1 语法格式 test_expressio ...
- 在MySQL中使用游标和for循环
目录 MySQL游标的属性 创建MySQL游标 声明语句 声明一个变量 为 SELECT语句声明游标 公开声明 Fetch语句 关闭声明 使用MySQL游标 MySQL存储过程 MySQL游标的注意事 ...
- SqlServer中Sql语句的逻辑执行顺序
准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...
- java 建树源码_Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】...
import java.util.ArrayDeque; import java.util.Queue; import java.util.Stack; //二叉树的建树,前中后 递归非递归遍历 层序 ...
- 简单介绍SQLserver中的declare变量用法
这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...
最新文章
- linux目录都是什么意思,linux中的基本的目录结构都是什么意思,初学者都应该有印象-tmp是什么文件...
- vue中弹窗input框聚焦_Vue 中如何让 input 聚焦?(包含视频讲解)
- 无法添加选择的Web部件
- C++中void和void*指针的含义 (指针类型的含义)
- primefaces_懒惰的JSF Primefaces数据表分页–第1部分
- checkbox全选和反选功能
- 计算机视觉专业要学什么课程,[08本]“计算机视觉基础”课程介绍和课件
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
- 大疆反腐45人被查处 被开除员工喊话CEO汪滔自称“被冤枉”
- zoj 3228 覆盖及非覆盖串的多次匹配
- mysql5.7主从恢复_MySQL 5.7 开启主从同步开启GTID恢复数据
- fx系列微型可编程控制器 通信_西门子系列资料(64本电子书+PLC视频+软件),整理了很久...
- Bex5服务启动时提示概念表超限
- 20191122 视频版控制台上的极乐净土
- 中国科学家dna计算机,我国首台DNA计算机问世
- Unity 3D项目-Adventure of JM Robot
- excel服务器源码,excel链接服务器源码
- 来了,2020全球算力大会暨新基建矿业峰会,首批重磅嘉宾阵容出炉!
- 成功项目策划“四要素”
- 远程连接腾讯云主机中MySQL