Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / cursor dynamic scroll ...for update / 3 сообщений из 3, страница 1 из 1
23.07.2001, 10:38
    #32010108
olden
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cursor dynamic scroll ...for update
Кто сталкивался с таким? SQLServer 2000. В таблице 34046 записей. Хочу вставить в определенное поле типа INT инкрементное значение (1,2,3...). Делаю так

declare CUR_FSCORE cursor local dynamic scroll for select PTR from [dbo].[FSCORE] for update

open CUR_FSCORE

declare @PTR1 int
declare @PTR int
set @PTR = 1

fetch first from CUR_FSCORE into @PTR1

while (@@fetch_status<>-1)
begin
update [FSCORE] set ADDR_PTR=@PTR where current of CUR_FSCORE
fetch next from CUR_FSCORE into @PTR1
set @PTR=@PTR+1
end

close CUR_FSCORE
deallocate CUR_FSCORE
GO


выполняю как скрипт в Query Analizer. Доходит до 32793 шага и из цикла WHILE не выходит и до конца записи не отрабатывает (34046). Очень похоже на переполнение переменной SMALLINT, но у меня такой нет
...
Рейтинг: 0 / 0
23.07.2001, 12:27
    #32010117
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cursor dynamic scroll ...for update
Да напишите Вы так

declare @PTR int
set @PTR = 1
update [FSCORE] set ADDR_PTR=@PTR, @PTR=@PTR+1

и забудьте про курсоры
...
Рейтинг: 0 / 0
23.07.2001, 13:20
    #32010126
Olden
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cursor dynamic scroll ...for update
огромнейшее спасибо
век живи - век учись
я предполагал наличе чего-то подобного, но не мог найти пример или описание
может плохо искал
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / cursor dynamic scroll ...for update / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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