SQL Server 游标运用:游标模板

时间:2021-12-31 13:30:11

一、 背景

  游标在我维护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脚本返回的结果:

SQL Server 游标运用:游标模板

(Figure1:游标模板返回数据库名)