遇到错误:A cursor with thename ' ' already exists,想要看是什么代码导致的。找到下面几种方法

 

--测试声明Cursor并且打开

DECLARE vend_cursor CURSOR

FOR SELECT FROM Purchasing.Vendor

OPEN vend_cursor

FETCH NEXT FROM vend_cursor;

 

--使用下面的三种方法都可以

SELECT ec.session_id,ec.name,ec.properties,ec.creation_time,ec.is_open,ec.writes,ec.reads,t.text

FROM sys.dm_exec_cursors(0)ec

CROSS APPLY sys.dm_exec_sql_text(ec.sql_handle)t

 

dbcc activecursors(0)

 

SELECT FROM MASTER..SYSCURSORS

 

结果:

如何查看当前Open的Cursor_第1张图片

看起来DMV的结果更全面。