游标,如果是之前给我说这个概念,我的脑子有二个想法: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版本)的更多相关文章

  1. 利用navicat创建存储过程、触发器和使用游标的简单实例

    利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报  分类: 数 ...

  2. 使用mysqld_multi 实现Mysql 5.6.36 + 5.7.18 单机多实例多版本安装

    Mysql 5.6.36 + 5.7.18 单机多实例多版本安装 随着硬件层面的发展,各种高性能服务器如雨后春笋般出现,但高性能服务器不免造成浪费, MySQL单机多实例,是指在一台物理服务器上运行多 ...

  3. SQLServer-Version:SQLServer版本对应内部数据库版本号配置表

    ylbtech-SQLServer-Version:SQLServer版本对应内部数据库版本号配置表 1.返回顶部 1. 1.1 查询SQLServer对应的内部数据库版本号select DATABA ...

  4. (转)sqlserver游标概念与实例全面解说

    首先声明:该文章转自http://www.cnblogs.com/wudiwushen/archive/2010/03/30/1700925.html  的博客 引言  我们先不讲游标的什么概念,步骤 ...

  5. sqlserver游标概念与实例全面解说

    引言 我们先不讲游标的什么概念,步骤及语法,先来看一个例子:   ?????? 表一 OriginSalary????????????????????????????????????????????? ...

  6. SQLServer 版本之八大方法搞清 "我是谁"

    你正在使用 SQL Server 的哪个版本? 贴士:作为一个SQL Server数据库管理者或维护.支持人员,应该会经常问自己这样一个问题:我当前SQL Server版本号是?当前版本已经有的累计更 ...

  7. sqlserver版本分类下载以及各个版本之间的区别是什么

    很多用visual studio做开发的朋友经常会用到sqlserver数据库,但是往往在选择的时候就不知道该使用哪个版本了,今天亦是美网络就给大家分享一下sqlserver各个版本之间的区别,以及各 ...

  8. 查看SQL Server多实例的版本

    通过 select @@version 查看当前的 SQL Server 安装的版本: 结果返回的是 SQL Server 2008 R2 (SP1),可安装的明明是 SQL Server 2012  ...

  9. [SQL SERVER系列]存储过程,游标和触发器实例[原创]

    自己写的存储过程与游标结合使用的实例,与大家分享,也供自己查阅,仅供参考: --使用游标循环处理,删除重复的记录 declare @UserID int ) ) declare @UnitFlag i ...

随机推荐

  1. 使用教程 - BestSync同步软件 - SQL2008R2 数据库定时备份解决方案

    需求: 1.      某公司的管理软件,数据库为SQL2008R2.2.      将整个数据库作为一个文件,定时同步到FTP 服务器3.      需要有多个备份,每同步一次,都备份上次的文件到备 ...

  2. shiro内置过滤器研究

    anon org.apache.shiro.web.filter.authc.AnonymousFilter authc org.apache.shiro.web.filter.authc.FormA ...

  3. iOS UIView显示颜色渐变

    -(void)colorWear:(UIView *)view{ CAGradientLayer *gradient = [CAGradientLayer layer]; gradient.frame ...

  4. BoneCP学习笔记

    什么是BoneCP BoneCP 是一个快速.免费而且开源的java数据库连接池(JDBC Pool)管理工具库.如果你曾经使用过C3P0或者DBCP,那你肯定知道上面这句话的意思:如果你没用过这些, ...

  5. openMP的一点使用经验

    最近在看多核编程.简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生.按照我的理解,多核编程可 ...

  6. python进阶之路4.2---装饰器

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  7. javascript构造函数+原形继承+作用域扩充

    目前为止我认为这是最佳的声明对象的模式,将今天学到的东西写下 <script type="text/javascript"> function Constructor( ...

  8. MySQL的一些语法总结

    初学MySQL,今天遇到了一个问题,然后汇总了一下MySQL的一些语法 1. date和datetime类型是不同的 date只记录日期(包括年月日),datetime记录日期和时间(包括年月日时分秒 ...

  9. Tomcat项目部署方式

    一.静态部署 1.直接将web项目文件件拷贝到webapps 目录中      Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.所以可以将JS ...

  10. "客户端无法连接到远程计算机"错误的解决方法

    问题: 客户端无法连接到远程计算机. 可能没有启用远程连接或者计算机太忙不能接受新的连接. 也可能是网络问题阻止连接.请稍后重新尝试连接. 如果问题仍然存在 请与管理员联系. 解决方法: 1.首先确认 ...