Mad*_*ddy 36 sql t-sql sql-server sql-server-2005 sql-server-2008
如何检查光标是否打开?因为很多次我遇到错误'游标已经存在'.请让我知道如何检查光标是否已处于打开状态.
实际上我已经关闭以及最后解除分配它(CLOSE ppm_cursor; DEALLOCATE ppm_cursor;)但是我仍然得到同样的错误可能是什么原因.
Gar*_*y W 82
您可以使用CURSOR_STATUS函数来确定其状态.
IF CURSOR_STATUS('global','myCursor')>=-1
BEGIN
DEALLOCATE myCursor
END
Run Code Online (Sandbox Code Playgroud)
Pra*_*eek 35
关闭光标,如果它是空的,则取消分配它:
IF (SELECT CURSOR_STATUS('global','myCursor')) >= -1
BEGIN
IF (SELECT CURSOR_STATUS('global','myCursor')) > -1
BEGIN
CLOSE myCursor
END
DEALLOCATE myCursor
END
Run Code Online (Sandbox Code Playgroud)
对 Gary W 提到的内容稍加改动,添加“SELECT”:
IF (SELECT CURSOR_STATUS('global','myCursor')) >= -1
BEGIN
DEALLOCATE myCursor
END
Run Code Online (Sandbox Code Playgroud)
http://social.msdn.microsoft.com/Forums/en/sqlgetstarted/thread/eb268010-75fd-4c04-9fe8-0bc33ccf9357