SQL Cursor(游标)

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

  

转载于:https://www.cnblogs.com/Evan-Pei/p/4648969.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值