Я пытаюсь запустить исполняемый файл, в котором у меня есть обычный CURSOR и SCROLL CURSOR, смотрящий на одну таблицу.CURSOR служит для отслеживания внешнего цикла, в то время как SCROLL CURSOR помогает во внутреннем цикле.Когда я пытаюсь запустить программу, кажется, что код застревает, пытаясь открыть КУРСОР ПРОКРУТКИ (например, он выведет «ОК», но не «КОД НЕ ДОЙДЕТ ЗДЕСЬ»).Я использую SQL 2008 R2.Я попытался запустить очень сокращенную версию своего кода, и кажется, что я не могу даже открыть SCROLL CURSOR на моем компьютере ни при каких обстоятельствах, поэтому мне интересно, если это какая-то странная проблема совместимости, или у меня как-то неправильный синтаксис (хотяэто просто).Для чего стоит тестировать мой код, я смог открыть 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