游标的使用可以简单归类为5个步骤:
1.定义游标
2.打开游标
3.使用游标
4.关闭游标
5.释放游标
如下是游标简单实用的示例:
--1.定义游标 DECLARE test_Cursor CURSOR FOR SELECT ID,NAME FROM TEST --2.打开游标 OPEN test_Cursor --3.使用游标 DECLARE @ID INT,@NAME VARCHAR FETCH NEXT FROM test_Cursor INTO @ID,@NAME WHILE @@FETCH_STATUS=0 BEGIN PRINT @ID print @Name FETCH NEXT FROM test_Cursor INTO @ID,@NAME END --4.关闭游标 CLOSE test_Cursor --5.释放游标 DEALLOCATE test_Cursor遍历TEST表的每一行,输出每行的ID 和 NAME。
应用场景:
需要循环从一张表里取值并判断作相应的处理,有时候也可以使用临时表结合while循环来替代游标操作,实践证明,游标的操作更快。
总结:
游标是邪恶的,游标是每循环一次返回一条结果集,而SELECT查询是返回全部的结果集。之前看有网友举了一个形象生动的例子,游标就好比你去ATM机取1000块钱,你每次取100,分10次取出来。所以能不使用游标尽量不要使用游标,在我们穷尽了子查询,while循环,临时表,表变量,自建函数仍不能实现的时候,使用游标实现。