游标的使用
1、游标是什么:
个人理解:游标相当于数据表中的一个指针,它可以一行一行的去读你的表中的数据
2、如何使用游标:
游标的使用分为五个步骤:定义游标、打开游标、使用游标、关闭游标、释放游标;
1)定义游标:定义了一个名叫test_Cursor ,将表的所有列数据赋值给了他
1 DECLARE test_Cursor CURSOR FOR SELECT * FROM dbo.tb
2)打开游标:
1 OPEN test_Cursor
3)使用游标:就通过INTO关键字将这行的值传入局部变量,并打印出来
4)关闭游标
1 CLOSE test_Cursor
5)释放游标
1 DEALLOCATE test_Cursor
3、项目中的实际运用
1 --声明变量 2 DECLARE @instanceId uniqueidentifier,@createuserId nvarchar(50),@stateName nvarchar(50) 3 --声明游标 4 declare curr cursor for 5 --将数据库中的表查询过滤,游标就在这个过滤的表上作用 6 select id,CreaterUserId,StateName from WF_WorkflowInstance 7 where WorkflowName= '集团公司网上审批工作流' 8 and year(PersistTime) in (2016,2017) 9 10 --打开游标 11 open curr 12 --取游标中的数据,并存在临时变量中 13 fetch next from curr into @instanceId,@createuserId,@stateName 14 --循环条件,游标一般都是用这个条件,相当于取到没有数据就停了吧,你也可以自定义条件 15 while (@@fetch_status=0) 16 begin 17 if(@stateName = 'ApprovalEnd') 18 --这里是执行了其它的存储过程,主要写你逻辑吧 19 EXEC [EaScoreByEventParam] @instanceId ,'立项' ,@createuserId 20 if(@stateName = 'ApprovalTerminated') 21 EXEC [EaScoreByEventParam] @instanceId ,'中止' ,@createuserId 22 --这句话很关键,相当于循环的条件,取下一条数据,不写就会出现死循环 23 fetch next from curr into @instanceId,@createuserId,@stateName 24 end 25 close curr--关闭游标 26 27 deallocate curr --释放游标
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!