MSSQL手札一 MSSQL的游标
和oracle的不同,MSSQL中没有隐式游标的说法,也没有%type和%rowtype这样根据数据库字段实时更新变量含义的关键字,MSSQL的游标类似于oracle的显示游标,需要自己去手动关闭,
定义游标之后是在预先定义的变量里面进行游标循环,而不是oracle那样的结果集。如下:
declare nex cursor for select [user_name],[birthdate] from T_user_info
--在访问游标某行数据的时候需要定义变量,这个变量是和表里面的字段一一对应的
declare @name nvarchar(50)
declare @birthdate datetime
--打开游标
open nex
--通过游标nex循环取变量结果集中的数据
fetch nex into @name,@birthdate
while(@@FETCH_STATUS=0)
begin
--在这里做一些操作
print('姓名:'+@name+' '+'日期:'+convert(nvarchar(50),@birthdate))
--print(convert(nvarchar(50),@birthdate))
--print(@birthdate)
--一直进行检索。如果@@FETCH_STATUS是一直为0,表示一直是有数据的就可以一直循环
fetch nex into @name,@birthdate
end
--读取结束,关闭游标
close nex
--关闭游标之后还要释放游标,oracle没有这个步骤
deallocate nex
这就是一个游标的demo,你可以复制过来之后改变变量,字段,表名,之后做操作就可以了,但是游标对于性能上还是会有一些影响,所以用的时候要合理运用
MSSQL手札一 MSSQL的游标的更多相关文章
- MSSQL手札四 MSSQL的函数
和oracle一样,sql也可以自己定义函数 一个返回值,引用DEMO如下: 编写一个函数,该函数,可以通过输入借书时间来判断是否到期,当借阅时间大于30天,返回已经过期:否则返回还未到期. CREA ...
- MSSQL手札三 MSSQL存储过程
--存储过程完成一段sql代码的封装 create proc trim --参数列表,多个间用逗号分隔 ) as --自定义代码段 ) set @str1=LTRIM(RTRIM(@str)) pri ...
- MSSQL手札二 MSSQL的触发器
触发器,就是在对表做DML操作的时候,触发一些其他的事件,触发器一般用在check约束更加复杂的约束上面,是一种特殊的存储过程,不可以被主动调用. 语法如下: CREATE TRIGGER trigg ...
- mssql 动态表名,游标
ALTER PROCEDURE [dbo].[ken_overtime_check](@p_use_code nvarchar(100),@p_table_name nvarchar(1000)) A ...
- MSSQL Server 及 MSSQL Express版本 自动备份
一.SQL Server Management Studio(SMSS) 维护计划 [参考]SQL SERVER如何定期自动备份数据库 二.Windows 级 任务计划程序( MSSQL Expres ...
- nodejs:连接数据库SqlServer,mssql模块
现在的数据库越来越多,如mgdb,我比较常用的是mysql,但有一天做项目需要连接SqlServer,就去找了个方法.找了很多无非就mssql模块和node-sqlserver模块,但node-sql ...
- MSSQL数据库中Text类型字段在PHP中被截断之解 (转)
在PHP中使用了MSSQL数据库,恰巧数据库中又使用了Text类型字段,于是问题产生了.每次从数据库中查询得到的数据总是被莫名的截断,一开始是以为我使用的PHP框架中对字符串的长度有所限制,后来发现这 ...
- php 设置mssql编码 解决乱码问题 mssql_connect charset Utf8
当用mssql存储数据采用 nchar 或 nvarchar 存储时 , 由于nchar 或 nvarcha 不支持 UCS-2 ( 即 SQLServer 不会按照 UTF-8 格式存储) 导致P ...
- [MSSQL]SCOPE_IDENTITY,IDENT_CURRENT以及@@IDENTITY的区别
简单解释下SCOPE_IDENTITY函数,IDENT_CURRENT函数以及@@IDENTITY全局变量的区别 SCOPE_IDENTITY函数返回当前作用域内,返回最后一次插入数据表的标识,意思是 ...
随机推荐
- Android中使用ListView实现分页刷新(线程休眠模拟)(滑动加载列表)
当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程 ...
- ASP.NET MVC 4 WebAPI. Support Areas in HttpControllerSelector
This article was written for ASP.NET MVC 4 RC (Release Candidate). If you are still using Beta versi ...
- jsp内置对象和el表达式
九个内置对象 *out jsp的输出流,用来向客户端响应 *page 当前jsp页面, 它的引用数据类型是Object,即真身中有如下代码 Object page=this; *config 它对应真 ...
- (转)每天一个Linux命令(6):mv
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- 【自动化测试】Selenium 下载文件
用curl确定要下载的文件是什么类型的:另一种方法是使用requests 模块来查找内容类型 文件类型 http://tool.oschina.net/commons 1.先设置下载的目录,下载文件的 ...
- [转载] 老版本ubuntu 更新源
untu的普通版本支持的时间都有限,过了支持的时间,更新源都会被停用,比如ubuntu9.10原来的源都失效了(包括官方源,类似ustc的第 三方源,因为这些第三方源也是和官方源同步的).因此,直接用 ...
- 【解题报告】[动态规划] RQNOJ - PID38 / 串的记数
原题地址:http://www.rqnoj.cn/problem/38 解题思路: 状态表示:dp[i][j][k]表示i个A,j个B,k个C组成的满足条件的字符串的个数 初始状态:dp[0][0][ ...
- NetBeans-xdebug的安装
如果总是提示正在连接,ok,应该是没有装xdebug; 1,下载Php版本对应的xdebug.dll文件,以下是官方提供的网址,可以智能判断环境,给出下载链接和使用指南 http://www.xdeb ...
- 《Unix网络编程》卷2 读书笔记 第3章- System V IPC
1. 概述 三种类型的System V IPC:System V 消息队列.System V 信号量.System V 共享内存区 System V IPC在访问它们的函数和内核为它们维护的信息上共享 ...
- $(function(){})和jQuery(function(){})
$(function(){})和jQuery(function(){})有没有区别,群里的屌丝争吵起来,各自讲着各种理论大道理.但还是有人给出了简而有力的证明: 区分大小写(jQuery) 但jQue ...