易截截图软件、单文件、免安装、纯绿色、仅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      &


相关文档:

用SQL语句得到SQLServer 的表中的列的描述值

 select   case   when   c.colid=1   then   object_name(c.id)   else   ''   end   as   表名    
  ,c.name   as   字段名  
  ,t.name   数据类型  
  ,c.prec   as   长度   ......

sqlserver安装问题总结(SqlServer2000/2005)

 SQL Server 2000
Installing SQL Server 2000 (E文)
http://msdn.microsoft.com/en-us/library/aa299042(SQL.80).aspx
SQL Server 2000补丁
Microsoft SQL Server 2000 Service Pack 3a
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=90DCD52C-0488-4E46-AFBF-ACACE536 ......

SQLServer 2008跨数据库实例事务处理

 托了几天的难题,终于解决了。特分享一下
以下是一个存储过程
CREATE PROCEDURE deleteAccountAll
 @id int
AS
SET XACT_abort ON
BEGIN DISTRIBUTED TRAN
delete from AccountCapital where accountid = @id
delete from logininfo where username = @id
delete from CapitalRecord where accountid ......

SQLServer日期格式代码

转换方法: convert(nvarchar(8),starttime,14)
    100   (1,   2)  
    默认设置  
    mon   dd   yyyy   hh:miAM(或   PM)     
    
    101  
&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号