sqlserver数据库中cursor游标如何使用?

2025-10-19 20:32:28

1、创建一张测试表,用于演示sqlserver游标的使用

create table tblCursor(

    Id uniqueidentifier,

    EmpCode varchar(50),

    EmpName varchar(50),

    EmpAddress varchar(200)

);

sqlserver数据库中cursor游标如何使用?

2、往测试表中插入几行测试数据

insert into tblCursor(Id, EmpCode, EmpName, EmpAddress) values(NEWID(), 'Emp001', '张三', '北京');

insert into tblCursor(Id, EmpCode, EmpName, EmpAddress) values(NEWID(), 'Emp002', '李四', '上海');

insert into tblCursor(Id, EmpCode, EmpName, EmpAddress) values(NEWID(), 'Emp003', '王五', '深圳');

insert into tblCursor(Id, EmpCode, EmpName, EmpAddress) values(NEWID(), 'Emp004', '赵六', '广州');

sqlserver数据库中cursor游标如何使用?

3、查询测试表中的数据

select * from tblCursor;

sqlserver数据库中cursor游标如何使用?

4、定义游标,格式如下,截图中有颜色的字都是sqlserver的关键字

declare curEmployee cursor for

select empcode, empname, empaddress from tblCursor

sqlserver数据库中cursor游标如何使用?

5、定义游标之后,需要打开游标,才能开始操作,打开游标使用下面的语法

-- curEmployee 就是上一步定义的游标名称

open curEmployee

sqlserver数据库中cursor游标如何使用?

6、当 全局变量@@FETCH_STATUS = -1,表示当前没有游标在处理数据

select @@FETCH_STATUS

sqlserver数据库中cursor游标如何使用?

7、使用游标,循环输出第一步创建表的数据完整代码如下:

  -- 定义临时标量,用于接收游标的数据内容

declare @EmpCode varchar(50), @EmpName varchar(50), @EmpAddress varchar(200);

  -- 定义游标

declare curEmployee cursor for

select empcode, empname, empaddress from tblCursor

  -- 打开游标

open curEmployee

  -- 请注意:游标返回的字段个数、类型都需要与into后面的变量一致

fetch curEmployee into @EmpCode, @EmpName, @EmpAddress

  -- 当游标循环结束之后 @@FETCH_STATUS = -1,当还有下一行数据的时候,@@FETCH_STATUS = 0

while @@FETCH_STATUS = 0

begin

select @EmpCode, @EmpName, @EmpAddress

fetch curEmployee into @EmpCode, @EmpName, @EmpAddress

end

  -- 关闭游标 

close curEmployee

  -- 删除游标

deallocate curEmployee

sqlserver数据库中cursor游标如何使用?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢