码迷,mamicode.com
首页 > 数据库 > 详细

SQL Cursor(游标)

时间:2015-07-15 19:06:43      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

1.游标在数据表没有id(identity(1,1))时好用,但是游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量

2.如果能不用游标,尽量不要使用游标,用完用完之后一定要关闭和释放, 尽量不要在大量数据上定义游标,尽量不要使用游标上更新数据

Cursor:Global for--全局游标

Cursor:Local for--局部游标

LOCAL意味着游标的生存周期只在批处理或函数或存储过程中可见

GLOBAL意味着游标对于特定连接作为上下文,全局内有效

--第一步:声明游标
declare test_Cursor Cursor scroll for
select name  from dbo.aa
open test_Cursor--打开游标
--第二遍执行
declare @name nvarchar(1000)
fetch next from test_Cursor into @name--下一行
select @name
--第三遍关闭清空游标
CLOSE test_Cursor--关闭
DEALLOCATE test_Cursor--清空
/*只有支持6种移动选项,分别为到第一行(FIRST),
  最后一行(LAST),下一行(NEXT),上一行(PRIOR),
  直接跳到某行(ABSOLUTE(n)),
  相对于目前跳几行(RELATIVE(3))*/

通过游标循环数据

declare test_Cursor Cursor scroll for
select id,materialName from dbo.table_1

open test_Cursor
declare @c nvarchar(10)
declare @name nvarchar(1000)

while @@FETCH_STATUS=0
begin
fetch next from test_Cursor into @c,@name
select @c,@name
end
--最后执行
CLOSE test_Cursor
DEALLOCATE test_Cursor

  

SQL Cursor(游标)

标签:

原文地址:http://www.cnblogs.com/Evan-Pei/p/4648969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!