2010-10-10 37 views

回答

1

當聲明遊標並且批處理終止後發生錯誤時,光標將保持打開狀態。連接關閉後,光標將被關閉。

如果可以捕獲錯誤,最好關閉光標作爲錯誤處理的一部分。

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

什麼時候當沒有錯誤光標得到關閉? – 2012-05-01 11:01:13

+0

更新了更好的解決方案;還試圖讓這個例子更清晰 – 2012-05-01 11:54:47

+0

爲什麼> -2?如果狀態> = 0,我認爲你想關閉它。 – Trevor 2014-01-22 22:30:48

相關問題