SQL SERVER中游标的使用
准备基础数据
CREATE TABLE [dbo].[person_info](
[name_person] [varchar](32) NULL,
[age] [int] NULL,
[address] [varchar](128) NULL
) ON [PRIMARY]
insert into person_info values ('tom',20,'new york'),('john',23,'England')
建立游标进行每行遍历处理
declare @name varchar(50) -- 定义变量,存储游标返回的值
declare x cursor
for
select name_person from person_info -- 定义游标,游标的值从 person_info中取
open x --打开游标
fetch next from x into @name -- 获取游标的下一个
while @@FETCH_STATUS =0 -- - 0 FETCH 语句成功 -1 FETCH 语句失败或此行不在结果集中-2 被提取的行不存在
begin
print '姓名:'+@name
fetch next from x into @name -- 转到下一行,否则出现死循环
end
close x -- 关闭游标
deallocate x --释放游标
链接:[一个比较详细的blog]( https://www.cnblogs.com/paulhe/p/9573369.html#:~:text=SQL Server游标 SQL游标概念 SQL的游标是一种临时的数据库对象,既可以存放储存在数据库表中数据行的副本,也指向数据行的指针。 ,SQL%E6%B8%B8%E6%A0%87%E4%BD%9C%E7%94%A8%201.%E9%81%8D%E5%8E%86%E6%95%B0%E6%8D%AE%E8%A1%8C%EF%BC%9B%202.%E4%BF%9D%E5%AD%98%E6%9F%A5%E8%AF%A2%E7%BB%93%E6%9E%9C%EF%BC%8C%E6%96%B9%E4%BE%BF%E4%B8%8B%E6%96%87%E8%B0%83%E7%94%A8%E3%80%82%20%E6%A6%82%E5%BF%B5%E4%B8%AD%E6%8F%90%E5%88%B0%E4%BD%BF%E7%94%A8%E6%B8%B8%E6%A0%87%E4%BC%9A%E4%BF%9D%E5%AD%98%E6%95%B0%E6%8D%AE%E8%A1%8C%E7%9A%84%E5%89%AF%E6%9C%AC%EF%BC%8C%E9%82%A3%E4%B9%88%E5%88%9B%E5%BB%BA%E6%B8%B8%E6%A0%87%E5%90%8E%EF%BC%8C%E4%B8%8B%E6%96%87%E6%9F%A5%E8%AF%A2%E5%8D%B3%E5%8F%AF%E4%BB%8E%E5%89%AF%E6%9C%AC%E4%B8%AD%E6%9F%A5%E8%AF%A2%EF%BC%8C%E8%A6%81%E6%AF%94%E7%9B%B4%E6%8E%A5%E6%9F%A5%E6%95%B0%E6%8D%AE%E5%BA%93%E5%BF%AB%E5%BE%88%E5%A4%9A%E3%80%82)

浙公网安备 33010602011771号