sql 创建一个SQL数据库API游标,一次从数据库表中获取一千行,并将其留给数据库进行计算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 创建一个SQL数据库API游标,一次从数据库表中获取一千行,并将其留给数据库进行计算相关的知识,希望对你有一定的参考价值。

-- http://dba.stackexchange.com/a/82806
DECLARE @cur INTEGER
    ,
    -- FAST_FORWARD | AUTO_FETCH | AUTO_CLOSE
    @scrollopt INTEGER = 16 | 8192 | 16384
    ,
    -- READ_ONLY, CHECK_ACCEPTED_OPTS, READ_ONLY_ACCEPTABLE
    @ccopt INTEGER = 1 | 32768 | 65536
    ,@rowcount INTEGER = 1000
    ,@rc INTEGER;

-- Open the cursor and return the first 1,000 rows
EXECUTE @rc = sys.sp_cursoropen @cur OUTPUT
    ,'SELECT MyColumn FROM MyTable'
    ,@scrollopt OUTPUT
    ,@ccopt OUTPUT
    ,@rowcount OUTPUT;

IF @rc <> 16 -- FastForward cursor automatically closed
BEGIN
    -- Name the cursor so we can use CURSOR_STATUS
    EXECUTE sys.sp_cursoroption @cur
        ,2
        ,'MyCursorName';

    -- Until the cursor auto-closes
    WHILE CURSOR_STATUS('global', 'MyCursorName') = 1
    BEGIN
        EXECUTE sys.sp_cursorfetch @cur
            ,2
            ,0
            ,1000;
    END;
END;

-- Refer to:
-- 1. sp_cursoropen   - http://msdn.microsoft.com/en-us/library/ff848737.aspx 
-- 2. sp_cursoroption - http://msdn.microsoft.com/en-us/library/ff848779.aspx
-- 3. sp_cursorfetch  - http://msdn.microsoft.com/en-us/library/ff848736.aspx 

以上是关于sql 创建一个SQL数据库API游标,一次从数据库表中获取一千行,并将其留给数据库进行计算的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 数据库性能优化

sql server 数据库性能忧化

记一次从Sql Server中图片二进制流还原回图片的开发过程

SQL 中将游标循环查询的结果插入到临时表中

sql 游标如何循环

什么是游标?