Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите сделать курсор с шагом  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
Добрый день!
Мне нужно проапдейтить большое количество записей. В одной транзакции не получается, очень долго крутится и потом процесс останавливается.
Как написать курсор, чтобы проапдейдить записи частями, например, по 5000 тыс записей.
Буду благодарна за пример.
Спасибо
7 фев 17, 17:40    [20190155]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать курсор с шагом  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
да, у меня есть ID-поле - счетчик.
7 фев 17, 17:41    [20190160]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать курсор с шагом  [new]
iljy
Member

Откуда:
Сообщений: 8711
Eugenia79,

а зачем для этого курсор?

WHILE 1=1
BEGIN
   UPDATE TOP(5000) .....


   IF @@ROWCOUNT <=0 BREAK;
END


Только убедитесь, что UPDATE пропускает записи, не требующие изменений.
7 фев 17, 18:15    [20190259]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать курсор с шагом  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
iljy,

не придираясь, не помню и сразу не нахожу @@ROWCOUNT может быть меньше 0?
7 фев 17, 18:24    [20190294]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать курсор с шагом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
TaPaK
iljy,

не придираясь, не помню и сразу не нахожу @@ROWCOUNT может быть меньше 0?
Нет, не может
7 фев 17, 18:26    [20190297]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать курсор с шагом  [new]
Eugenia79
Member

Откуда:
Сообщений: 27
Спасибо! Возьму на вооружение.
8 фев 17, 09:52    [20191495]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить