有两个方法可以查看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