SQL Cursor(游标)
2015-07-15 17:24 Evan.Pei 阅读(225) 评论(0) 编辑 收藏 举报1.游标在数据表没有id(identity(1,1))时好用,但是游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量
2.如果能不用游标,尽量不要使用游标,用完用完之后一定要关闭和释放, 尽量不要在大量数据上定义游标,尽量不要使用游标上更新数据
Cursor:Global for--全局游标
Cursor:Local for--局部游标
LOCAL意味着游标的生存周期只在批处理或函数或存储过程中可见
GLOBAL意味着游标对于特定连接作为上下文,全局内有效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | --第一步:声明游标 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))*/ |
通过游标循环数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构