如果在以下期间发生错误,将会发生什么:
如果在光标关闭之前发生错误会发生什么?它会自动关闭吗?
当我使用光标时,处理错误的最佳做法是什么?
答案 0 :(得分:2)
使用更好的解决方案进行了更新
[CURSOR_STATUS][1]
函数可用于检查游标的状态。
在SQL 2005及更高版本中,这可以包含在TRY...CATCH
块中
像
BEGIN TRY
DECLARE <cursorName>... CURSOR FOR
...cursor statement, fetch block, close & deallocate
END TRY
BEGIN CATCH
IF (CURSOR_STATUS('global', '<cursorName>') > -2)
DEALLOCATE dbCursor
...other error handling
END CATCH
答案 1 :(得分:1)
声明光标并且批处理终止后发生错误时,光标将保持打开状态。连接关闭后,光标将关闭。
如果可以捕获错误,最好在错误处理过程中关闭游标。