2014-04-09 3 views
0

вот код SQL у меня есть для курсора мне нужно:Sql Server Cursor ошибка 'для'

declare @myCursor cursor for 
    SELECT item_one, item_2, lastUpdateTime, content_value FROM #MyTable; 

Я получаю сообщение об ошибке:

Msg 156, Level 15, State 1, Line 44 Incorrect syntax near the keyword 'for'.

Что я делаю неправильно?

Я использую SQL Server 2008 R2.

+0

вы знаете, что это плохая практика, чтобы использовать курсоры, когда вы можете использовать набор на основе логики, что возможно большую часть времени. Если вы делаете какие-либо вставки/обновления или удаления, не используйте курсор. – HLGEM

+0

@HLGEM Я понимаю, что это плохая практика, но с содержанием, с которым мне приходится работать, я не вижу другого пути. – shadonar

ответ

1

курсоры не использовать @ префикс, как и другие переменные:

declare myCursor cursor for 
    SELECT item_one, item_2, lastUpdateTime, content_value FROM #MyTable; 
+0

, но когда я удаляю префикс '@', я получаю эту ошибку: 'Msg 137, Level 15, State 2, Line 171 Должен объявить скалярную переменную @target_cursor.. – shadonar

+1

@shadonar. Это ошибка, относящаяся к части вашего курсор не показан, можете ли вы добавить весь курсор к вашему вопросу? Если '@ target_cursor' - это имя вашего курсора, просто убедитесь, что вы изменили все экземпляры имени, чтобы исключить' @ '. –

+0

nevermind, это исправляло проблему, я просто случайно получил еще одно использование @myCursor ... извините, спасибо за помощь !! – shadonar

Смежные вопросы