我在sql中有以下光标:
DECLARE cur_saveRate CURSOR
FOR
SELECT UtilityName,SuggestedRate,Client,State,CurrentRate,AccNo,Savings from #tempXML
print '1'
OPEN cur_saveRate
IF @@CURSOR_ROWS > 0
BEGIN
FETCH NEXT FROM cur_saveRate INTO @UTILITY_NAME,@SUG_RATE,@CLIENT_NAME,@CLIENT_STATE,@CURRENT_RATE,@ACCOUNT_NUMBER,@SAVINGS
WHILE @@Fetch_status = 0
BEGIN
..........
.........
END
FETCH NEXT FROM cur_saveRate INTO @UTILITY_NAME,@SUG_RATE,@CLIENT_NAME,@CLIENT_STATE,@CURRENT_RATE,@ACCOUNT_NUMBER,@SAVINGS
END
CLOSE cur_saveRate
DEALLOCATE cur_saveRate
不幸的是它没有进入游标。
我试图打印一些'在不同的地方,它没有进入光标。
我已确保记录存在于#tempXML
请帮帮我。
答案 0 :(得分:1)
这很可能是因为条件IF @@CURSOR_ROWS > 0
根据BOL @@CURSOR_ROWS less than 0
表示
如果最后一个光标是异步打开的,@@ CURSOR_ROWS返回的数字是负数。如果sp_configure cursor threshold的值大于0且游标结果集中的行数大于游标阈值,则会异步打开键集驱动程序或静态游标。
MSDN参考文献是here。
尝试摆脱这种情况并运行光标。