У меня есть вложенный курсор, оператор выбора которого иногда возвращает 0 записей.
Курсор выполняет оператор вставки.
Я ожидаю, что оператор вставки не будет выполнен, если запрос вернется0 записей.Но это все равно выполняется.Не могли бы вы предложить способ избежать этого?
declare nested_cursor CURSOR
FOR
SELECT MyRECORD
FROM MyTable
WHERE MyRECORD = @ID -- @ID is a variable defined in the main cursor
-- for some values of @iD ht above select statement may return zero records
OPEN nested_cursor
FETCH NEXT FROM nested_cursor INTO @NestedID
WHILE (@@fetch_status = 0)
BEGIN
INSERT STATEMENT -- HERE I HAVE THE PROBLEM , why this executes?
FETCH NEXT FROM nested_cursor INTO @NestedID
END
CLOSE nested_cursor
DEALLOCATE nested_cursor
ОБНОВЛЕНИЕ: я нашел обходной путь, проверив, имеет ли значение @NestedId значение NULL непосредственно перед оператором INSERT.добавить эту проверку в
WHILE (@@fetch_status = 0) and (@NestedID is not null)
или есть лучшая техника?