小编div*_*ius的帖子

DEALLOCATE CURSOR 之前的 RETURN 语句

关于在 SQL Server 2008 存储过程中将 Cursors 与 RETURN 结合使用的问题

考虑这个例子:

CREATE PROCEDURE [dbo].[test]
    @ReturnEarly BIT = 0
AS
BEGIN
    SET NOCOUNT ON

    SELECT 1 AS Result INTO #Test

    DECLARE @Result INT, @HasResult INT = 1

    DECLARE TestCursor CURSOR FOR 
        SELECT Result
        FROM #Test
        WHERE Result = 0

    OPEN TestCursor
    FETCH NEXT FROM TestCursor INTO @Result

    IF (@@FETCH_STATUS <> 0)
    BEGIN
        IF (@ReturnEarly = 1)
            RETURN 0
        ELSE 
            SET @HasResult = 0
    END

    CLOSE TestCursor
    DEALLOCATE TestCursor

    DROP TABLE #test --technically …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 stored-procedures t-sql

6
推荐指数
1
解决办法
7764
查看次数

标签 统计

sql-server-2008 ×1

stored-procedures ×1

t-sql ×1