powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вопрос по UPDATE и CURSOR
4 сообщений из 4, страница 1 из 1
вопрос по UPDATE и CURSOR
    #32030211
arthur_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сервер MSSQL70

Ситуация такая, есть таблица с двумя полями

create table1(f1 int null, f2 varchar null)

Мне необходимо получить упорядоченный курсор, который можно было бы обновлять.

Если делаю так

DECLARE CURSOR curs1 FOR
SELECT f1 FROM table1
WHERE f1 IS NOT NULL
FOR UPDATE OF f1

то все хорошо выполняется, но записи там не упорядочены и как только добавляю ORDER BY f2 - все перестает работать.

DECLARE CURSOR curs1 FOR
SELECT f1 FROM table1
WHERE f1 IS NOT NULL
ORDER BY f2
FOR UPDATE OF f1

Вот эта конструкция уже не выполняется. Ошибка: The cursor is READ_ONLY.

Вот и вопрос - что это за ограничение и как его обойти можно?
...
Рейтинг: 0 / 0
вопрос по UPDATE и CURSOR
    #32030223
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\ndeclare cCur cursor for
select Id
from Table1
where Id is not null
order by name
for update of Id

open cCur
deallocate cCur


Таблица другая - смысл тоже. У меня все работает. Кстати - коварный вопрос - а зачем через курсор пытаться менять поле для всех записей таблицы ? Может лучше воспользоваться старой доброй UPDATE ? Честно говоря не разу ничего через курсор не менял и даже не представляю, для чего это может понадобиться.
...
Рейтинг: 0 / 0
вопрос по UPDATE и CURSOR
    #32030233
arthur_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\nКстати - коварный вопрос - а зачем через курсор пытаться менять поле для всех записей таблицы ? Может лучше воспользоваться старой доброй UPDATE ? Честно говоря не разу ничего через курсор не менял и даже не представляю, для чего это может понадобиться.


Я там заполняю поле f1 возрастающим значением (допустим с шагом +1). Как это сделать при помощи UPDATE я не могу сообразить.
...
Рейтинг: 0 / 0
вопрос по UPDATE и CURSOR
    #32030236
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотреть внимательно в BOL описание UPDATE.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вопрос по UPDATE и CURSOR
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]