我想運行一個可執行文件,其中我有一個常規CURSOR和一個滾動遊標查看單個表。 CURSOR用於跟蹤外部循環,而SCROLL CURSOR則輔助內部循環。當我嘗試運行該程序時,似乎代碼被卡住以嘗試打開SCROLL CURSOR(例如,它將打印'OK',但'代碼無法觸及此處')。我正在使用SQL 2008 R2。我試着運行我的代碼的縮減版本,似乎我甚至無法在任何情況下在我的計算機上打開SCROLL CURSOR,所以我想知道它是否是一些奇怪的兼容性問題,或者我有某種錯誤的語法(即使它很簡單)。對於它的價值,在測試我的代碼時,我已經能夠在另一臺計算機上打開SCROLL CURSOR。SQL - 打開SCROLL CURSOR
你對此有何看法?我在下面複製了我試圖運行的代碼(所有變量聲明的僞代碼)。提前致謝。
create proc expiration_exec2
AS
SET NOCOUNT ON
DECLARE bunch of @variables
...
DECLARE cursor_main CURSOR FOR
SELECT Member_ID,redeemed_month,activity_month,tenure_month,min_pts,expired_pts,closed_pts,tenure_quarter,enrollment_month
FROM HIST_TRIANGLE
OPEN cursor_main
FETCH NEXT FROM cursor_main
INTO @account,@r_month,@e_month,@tenure_month,@min_pts,@expired_pts,@closed_pts,@tenure_quarter,@enrollment_month
DECLARE cursor_secondary CURSOR SCROLL FOR
SELECT Member_ID,redeemed_month,activity_month,min_pts,expired_pts,closed_pts
FROM HIST_TRIANGLE
PRINT 'OK'
OPEN cursor_secondary
FETCH NEXT FROM cursor_secondary
INTO @account2,@r_month2,@e_month2,@min_pts2,@expired_pts2,@closed_pts2
PRINT 'CODE DOES NOT REACH HERE'
...
Bunch more code