游标的使用实例(Sqlserver版本)
游标,如果是之前给我说这个概念,我的脑子有二个想法:1、你牛;2、我不会
不会不是理由,更不是借口,于是便要学习,本人属性喜欢看代码,不喜欢看书的人,所以嘛,文字对我没有吸引力;闲话少说啊,给大家提供一个我写的例子,先让大家用起来的,并且知道如何用的啊,想要深究,不要问我啊,自己看书去。。。
游标,作为java人员,最好的理解就是java中的List,只是数据库有点懒,没有过多的对他管理,要自己打开,关闭,释放资源而已
Demo1:
declare mycur cursor for ---申明游标mycur
select name from t_stu open mycur ---打开游标
---操作内容
close mycur ---关闭游标 deallocate mycur ---释放资源
上边的一个Demo只是告诉大家游标的一些基本指令,其实没啥用,要在函数中,存储过程中使用游标才真的有用类,接下来,请看Demo2:
-->这个函数主要实现的功能是,传入表名,将该表的所有的列,拼成字符串返回回来。
create function [dbo].[getCols]
( @table_name AS varchar(50)
)
RETURNS varchar(2000)
AS
BEGIN
DECLARE @colname VARCHAR(50)
DECLARE @typename VARCHAR(50)
DECLARE @result varchar(2000)
set @result = ''
DECLARE mycur CURSOR FOR ---定义游标
select c.name as columnname,ty.name as typename
from sys.columns c
inner join sys.tables t on t.object_id=c.object_id
inner join sys.types ty on ty.system_type_id=c.system_type_id
where t.name = @table_name and ty.name !='sysname' ---传入参数@table_name
order by t.name,c.column_id OPEN mycur ---打开游标
FETCH NEXT FROM mycur into ----获取下一条数据
@colname,@typename ----将获取的数据保存到变量中 WHILE @@FETCH_STATUS = 0 ----返回上次执行Fetch命令的状态,0:成功 -1:失败 -2:被提取的行不存在
BEGIN
if @result = null or @result = ''
begin
SET @result = @colname
end
else
begin
SET @result = @result + ',' + @colname
end
FETCH NEXT FROM mycur into ---获取下一条数据
@colname,@typename
END
CLOSE mycur ---关闭游标
DEALLOCATE mycur ----释放资源
RETURN @result
END
游标的使用实例(Sqlserver版本)的更多相关文章
- 利用navicat创建存储过程、触发器和使用游标的简单实例
利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报 分类: 数 ...
- 使用mysqld_multi 实现Mysql 5.6.36 + 5.7.18 单机多实例多版本安装
Mysql 5.6.36 + 5.7.18 单机多实例多版本安装 随着硬件层面的发展,各种高性能服务器如雨后春笋般出现,但高性能服务器不免造成浪费, MySQL单机多实例,是指在一台物理服务器上运行多 ...
- SQLServer-Version:SQLServer版本对应内部数据库版本号配置表
ylbtech-SQLServer-Version:SQLServer版本对应内部数据库版本号配置表 1.返回顶部 1. 1.1 查询SQLServer对应的内部数据库版本号select DATABA ...
- (转)sqlserver游标概念与实例全面解说
首先声明:该文章转自http://www.cnblogs.com/wudiwushen/archive/2010/03/30/1700925.html 的博客 引言 我们先不讲游标的什么概念,步骤 ...
- sqlserver游标概念与实例全面解说
引言 我们先不讲游标的什么概念,步骤及语法,先来看一个例子: ?????? 表一 OriginSalary????????????????????????????????????????????? ...
- SQLServer 版本之八大方法搞清 "我是谁"
你正在使用 SQL Server 的哪个版本? 贴士:作为一个SQL Server数据库管理者或维护.支持人员,应该会经常问自己这样一个问题:我当前SQL Server版本号是?当前版本已经有的累计更 ...
- sqlserver版本分类下载以及各个版本之间的区别是什么
很多用visual studio做开发的朋友经常会用到sqlserver数据库,但是往往在选择的时候就不知道该使用哪个版本了,今天亦是美网络就给大家分享一下sqlserver各个版本之间的区别,以及各 ...
- 查看SQL Server多实例的版本
通过 select @@version 查看当前的 SQL Server 安装的版本: 结果返回的是 SQL Server 2008 R2 (SP1),可安装的明明是 SQL Server 2012 ...
- [SQL SERVER系列]存储过程,游标和触发器实例[原创]
自己写的存储过程与游标结合使用的实例,与大家分享,也供自己查阅,仅供参考: --使用游标循环处理,删除重复的记录 declare @UserID int ) ) declare @UnitFlag i ...
随机推荐
- 转:DesiredCapabilities内容详解--Appium服务关键字
## Appium 服务关键字 <expand_table> |关键字|描述|实例| |----|-----------|-------| |`automationName`|你想使用的自 ...
- 关于win8开发的一点小总结
我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextB ...
- jQuery----blur()方法
当元素失去焦点时发生 blur 事件. blur() 函数触发 blur 事件,或者如果设置了 function 参数,该函数也可规定当发生 blur 事件时执行的代码. 提示:早前,blur 事件仅 ...
- (转)iOS Wow体验 - 第五章 - 利用iOS技术特性打造最佳体验
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第五章译文精选,其余章节将陆续放出.上一篇:Wow ...
- git删除未跟踪文件
# 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git clean -fd # 连 gitignore 的untrack 文件 ...
- Android的启动模式
启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的<Activity>标签的android:launchMode属性设置: 启动模式有4种,分别 ...
- JSP 实现 之 调用java方法实现MySQL数据库备份和恢复
package cn.qm.db; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOEx ...
- EL表达式复习
EL表达式格式: 格式1:${objName.attribute} 执行的过程为:从pageContext.request.session.application中依次查找绑定名为“user”的对象, ...
- hadoop调优之一:概述
hadoop集群性能低下的常见原因 (一)硬件环境 1.CPU/内存不足,或未充分利用 2.网络原因 3.磁盘原因 (二)map任务原因 1.输入文件中小文件过多,导致多次启动和停止JVM进程.可以设 ...
- 【JAVA编码专题】总结
第一部分:编码基础 为什么需要编码:用计算机看得懂的语言(二进制数)表示各种各样的字符. 一.基本概念 ASCII.Unicode.big5.GBK等为字符集,它们只定义了这个字符集内有哪些字符,以及 ...