sql游标

3359人阅读 2021/5/25 15:51 总访问:651584 评论:0 收藏:0 手机
分类: SQL

前言

什么是游标

游标类似于一个指针,游标就是把数据结果放到内存中,然后游标指向这个内存地址
作用: 
可以让我们一行一行的去处理数据

可以把游标理解成数据库中的SqlDataReader

使用游标的步骤:

1:创建游标  declare 游标名字 cursor for sql语句

2:打开游标  open 游标名字

3:查询游标(可以是遍历)    fetch next from 游标名称 into 接收的变量(可以是多个,赋值与顺序有关)

4:关闭游标  close 游标名字

5:删除游标  deallocate 游标名字

游标分为动态游标和静态游标

动态游标:主表数据变了, 游标数据会跟着变

静态游标:主表数据变了, 游标数据不会跟着变

创建一个游标

--数据部分
create table gongzi 
(
	id int primary key identity (1001,1),
	sname varchar (20),
	money int
	
)
insert gongzi values('张三',3000)
insert gongzi values('李四',3000)
insert gongzi values('王五',3000)
insert gongzi values('赵六',3000)
insert gongzi values('张伟',3000)


--创建游标
declare mycursor cursor
for select * from gongzi

--打开游标
open mycursor

--一行一行的读取
--fetch next from mycursor

--循环读取完数据表中的数据
declare @num int = 0
while(@num<5)
begin
select @num = @num+1
fetch next from mycursor
end

--关闭游标
close mycursor
--删除游标
deallocate mycursor

游标查询结果


into 与数据库类型转换

sql类型转换
CAST(sql变量 as 转换过后的类型)

--创建游标
declare mycursor cursor
for select money,sname from gongzi

--打开游标
open mycursor

declare @name varchar(20),@money int
declare @num int = 0
while(@num<5)
begin
select @num = @num+1
fetch next from mycursor into @money,@name
print(@name+cast(@money AS varchar(20)))
end

--关闭游标
close mycursor
--删除游标
deallocate mycursor

运行结果

评价
脚踏实地,一步一个脚印
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术