易截截图软件、单文件、免安装、纯绿色、仅160KB

在SqlServer存储过程中使用Cursor(游标)操作记录

 
1. 为何使用游标:
    
使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果
往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
2. 如何使用游标:
     一般地,使用游标都遵循下列的常规步骤:
      (1) 声明游标。把游标与T-SQL语句的结果集联系起来。
      (2) 打开游标。
     (3) 使用游标操作数据。
      (4) 关闭游标。
2.1. 声明游标
DECLARE CURSOR语句SQL-92标准语法格式:
DECLARE 游标名 [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR sql-statement
Eg:
Declare MycrsrVar Cursor
FOR Select * from tbMyData
2.2 打开游标
OPEN MycrsrVar
当游标被打开时,行指针将指向该游标集第1行之前,如果要读取游标集中的第1行数据,必须移动行指针使其指向第1行。就本例而言,可以使用下列操作读取第1行数据:
     FETCH FIRST from E1cursor
     或 FETCH NEXT from E1cursor
2.3      使用游标操作数据   
下面的示例用@@FETCH_STATUS控制在一个WHILE循环中的游标活动
/* 使用游标读取数据的操作如下。*/
DECLARE E1cursor cursor      /* 声明游标,默认为FORWARD_ONLY游标 */
FOR SELECT * from c_example
OPEN E1cursor                /* 打开游标 */
FETCH NEXT from E1cursor     /* 读取第1行数据*/
WHILE @@FETCH_STATUS = 0     /* 用WHILE循环控制游标活动 */
BEGIN
          FETCH NEXT from E1cursor   /* 在循环体内将读取其余行数据 */
END
CLOSE E1cursor               /* 关闭游标 */
DEALLOCATE E1cursor      &


相关文档:

触发器的创建及使用(sqlserver 2005)

触发器的创建及使用(sqlserver 2005)
创建 DML 或 DDL 触发器。触发器是数据库服务器中发生事件时自动执行的特种存储过程。如果用户要通过数据操作语言 (DML) 事件编辑数据,则执行 DML 触发器。DML 事件是针对表或视图的 INSERT、UPDATE 或 DELETE 语句。DDL 触发器用于响应各种数据定义语言 (DDL) 事件。这些主要是 CRE ......

存储过程的创建及使用(sqlserver 2005)

存储过程的创建及使用(sqlserver 2005)
创建存储过程。存储过程是已保存的 Transact-SQL 语句集合,或对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用,可接收并返回用户提供的参数。可以创建过程供永久使用,或在一个会话(局部临时过程)中临时使用,或在所有会话(全局临时过程)中临时使用。
启动 SQL ......

SQLServer导出表到EXCEL文件的存储过程

 SQL Server导出表到EXCEL文件的存储过程:
  *--数据导出EXCEL
  导出表中的数据到Excel,包含字段名,文件为真正的Excel文件
  ,如果文件不存在,将自动创建文件
  ,如果表不存在,将自动创建表
  基于通用性考虑,仅支持导出标准数据类型
  ---*/
  /**//*--调用示例
  p_exporttb @tbname='地区 ......

SQLSERVER修复小知识

在与数据库打交道的工作中时常会碰到一些数据库的错误,这就涉及到了修复的过程,以下知识点都是从网上收集而来:
1、dbcc checkdb
这个命令恐怕是我们最常用的了,带检查和修复功能
语法格式:
DBCC CHECKDB
[
[ ( database_name | database_id | 0
[ , NOINDEX
| , { REPAIR_ALLOW_DATA_LOS ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号