Вы используете параметры курсора по умолчанию (включая динамический).Попробуйте использовать гораздо более эффективный курсор для ваших целей:
DECLARE coil1_cursor CURSOR LOCAL STATIC FORWARD_ONLY READ_ONLY
FOR ...
Но для реального исправления Джо абсолютно прав - это вовсе не должен быть курсор.Вы можете сделать то же самое с помощью одного оператора обновления.Нет курсора, нет бесконечных циклов, нет ожидания:
UPDATE coil1
SET ShiftLength = NULL
WHERE [Timestamp] BETWEEN '2011-05-10 06:00:00' AND '2011-05-10 07:00:00'
(Кроме того, [Timestamp]
- ужасное имя столбца, поскольку оно представляет тип данных, который не имеет ничего общего с датой или временем. Rec#
тоже не сказочный. YMMV.)