如何判断游标是否存在
有两个方法可以查看Cursor是否Open:
1.查询syscursors系统表:
Select * from MASTER.dbo.syscursors
2. 使用CURSOR_STATUS函数:
比如:
CREATE TABLE#TMP
(
ii int
)
GO
INSERT INTO#TMP(ii)VALUES(1)
INSERT INTO#TMP(ii)VALUES(2)
INSERT INTO#TMP(ii)VALUES(3)
GO
--Create a cursor.
DECLARE cur CURSOR
FOR SELECT* FROM #TMP
--Display the status of the cursor before and after opening
--closing the cursor.
SELECT CURSOR_STATUS('global','cur')AS 'After declare'
OPEN cur
SELECT CURSOR_STATUS('global','cur')AS 'After Open'
CLOSE cur
SELECT CURSOR_STATUS('global','cur')AS 'After Close'
--Remove the cursor.
DEALLOCATE cur
--Drop the table.
DROP TABLE#TMP