一、 背景
游标在我维护SQL Server的过程中经常被使用到,如果游标使用得好,在很多时候可以给予我们开发过程带来很多的便利,所以这里提供一个游标模板;
二、 游标模板
在正式解决问题之前我先提供一个游标的模板,它简单的实现了找出数据库中所有的数据库名,其实这个模板的目的是为了提供一个规范化的游标SQL代码模板,下面SQL脚本实现了通过游标打印出用户数据库:
-- ============================================= -- Author: <听风吹雨> -- Blog: <http://gaizai.cnblogs.com/> -- Create date: <2011/12/03> -- Description: <游标模板> -- ============================================= --定义变量 DECLARE @databaseName VARCHAR(100) --定义游标 DECLARE @itemCur CURSOR --设置游标从某个结果集中开始移动读取记录 SET @itemCur = CURSOR FOR --返回用户数据库 SELECT name FROM sys.databases WHERE database_id > 4 OPEN @itemCur --读取一条记录到变量中,注意上面的结果集有多少列就应该有多少个变量 FETCH NEXT FROM @itemCur INTO @databaseName WHILE @@FETCH_STATUS=0 --业务逻辑处理开始 BEGIN --逻辑处理 PRINT @databaseName --读取下一条记录 FETCH NEXT FROM @itemCur INTO @databaseName END --业务逻辑处理结束 --关闭游标 CLOSE @itemCur --释放游标 DEALLOCATE @itemCur
下图是执行上面SQL脚本返回的结果:
(Figure1:游标模板返回数据库名)