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

SQL数据库

 CURSOR
==================================
l  SQL 游标CURSOR的使用
 
使用起来很简单,先定义,然后赋个值,打开,通过While Loop 一个一个读下去,最后关闭,释放内存。基本套路如下:
DECLARE MyCursor cursor /* 声明游标,默认为单纯向前的游标。如果想要前后跳来跳去的,写成Scroll Cursor即可 */
FOR
SELECT Column1, Column2 from 某某表
Where 某某条件
OPEN MyCursor /* 打开游标 */
FETCH NEXT from MyCursor Into @A, @B /* 读取第1行数据*/
WHILE @@FETCH_STATUS = 0 /* 用WHILE循环控制游标 */
BEGIN /*BEGIN-END 块*/
//在这里,用@A,@B做点事,或者改一改值什么的.
FETCH NEXT from MyCursor Into @A, @B /* 抓下一行 */
END
CLOSE MyCursor /* 关闭游标 */
DEALLOCATE MyCursor /* 删除游标,释放内存 */
声明游标///////////////////////
USE pubs
GO
DECLARE authors_cursor CURSOR FOR
SELECT au_id,au_fname,au_lname
from authors
GO
USE pubs
GO
DECLARE authors_cursor1 CURSOR FOR
SELECT au_id,au_fname,au_lname
from authors
FOR READ ONLY
GO
USE pubs
GO
DECLARE authors_cursor2 CURSOR FOR
SELECT au_id,au_fname,au_lname
from authors
FOR UPDATE
GO
 
打开游标////////////
DECLARE mancursor CURSOR FOR
SELECT *
from db_manpowerinfo.dbo.人事表
WHERE 编号='00019'
OPEN mancursor
FETCH NEXT from mancursor
CLOSE mancursor
 
读取游标中的数据/////////////////////
DECLARE mancursor1 CURSOR FOR
SELECT 编号,姓名,性别,身份证号
from db_manpowerinfo.dbo.人事表
OPEN mancursor1
FETCH NEXT from mancursor1
WHILE @@FETCH_STATUS=0
BEGIN
  FETCH NEXT from mancursor1
END
CLOSE mancursor1
DEALLOCATE mancursor1
 
关闭并释放游标//////////////////
USE 销售管理系统
GO
DECLARE mycursor CURSOR FOR
SELECT 客户全称,count(*) as 销售记录数,sum(数量)as 销售数量 from 销售表 WHERE 数量 >100 Group BY 客户全称
OPEN mycursor
FETCH NEXT from mycursor
WHILE @@FETCH_STATUS = 0   -- 判断是否还有须要读取的记录
BEGIN
   FETCH NEXT from mycursor     --读取记录到游标
END
CLOSE mycursor
DEALLOCATE mycurso


相关文档:

SQL Table

Table-Naming Standards
Table-naming standards, as well as any standard within a business, are critical to
maintaining control. After studying the tables and data in the previous sections, you
probably noticed that each table’s suffix is _TBL. This is a naming standard selected
for use, suc ......

大数据量下快速获取 SQL Server 数据库表记录数的方法

在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时 ......

sql server charindex和patindex详解

假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串。我将告诉你这两个函数是如何运转的,解释他们的区别。同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同的字符搜索的问题。
 &nb ......

EXCEL数据导入SQL 的另类用法

做开发过程中,经常会用到将Excel中数据导出到SQL Server中的情况,你可以利用SQL SERVER 中自带的导入数据的方式,但这种方式,有时会发现数据导入后,可能为空,可能开头少个零,此种情况多出现于数值型的列,今天在CSDN上闲逛,偶尔发现了一个帖子,介绍的以下这种方法,本人恰七因最近公司准备上市,审计局在做审计,技 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号