检查指定游标是否存在的函数.sql

CREATE FUNCTION f_CursorExists(@CursorName sysname)
RETURNS TABLE
AS
RETURN(
    SELECT * FROM(
        SELECT Name=@CursorName,
            Type=CAST('LOCAL' as varchar(8)),
            IsExists=CAST(CASE CURSOR_STATUS('LOCAL',@CursorName)
                WHEN -3 THEN 0 ELSE 1 END as bit)
        UNION ALL
        SELECT @CursorName,'GLOBAL',
            CASE CURSOR_STATUS('GLOBAL',@CursorName) WHEN -3 THEN 0 ELSE 1 END
        UNION ALL
        SELECT @CursorName,'VARIABLE',
            CASE CURSOR_STATUS('VARIABLE',@CursorName) WHEN -3 THEN 0 ELSE 1 END
    )a WHERE IsExists=1)
GO
posted @ 2012-06-02 17:28  ChaunceyHao  阅读(220)  评论(0)    收藏  举报