Это может быть достигнуто с помощью одного оператора, но это сделает код более восприимчивым к изменениям схемы.Предположим, что в таблице есть 2 дополнительных столбца помимо столбцов FieldName и indexKey.Тогда следующее утверждение достигнет вашей цели.
INSERT INTO nametable ( FieldName, Column2, Column3 )
SELECT 1, Column2, Column3 FROM nametable WHERE [indexkey]=32
Однако, если структура таблицы изменится, этот оператор необходимо будет соответствующим образом обновить.
Кстати, ваша первоначальная реализация небезопасна вмногопользовательские сценарии.Значение max ([indexKey]) в операторе UPDATE может не совпадать с сгенерированным оператором INSERT.Другой пользователь мог вставить другую строку между двумя операторами.Чтобы использовать ваш оригинальный подход, вы должны использовать скаляр LastAutoInc ().
UPDATE nametable Set FieldName=1
WHERE [IndexKey] = LastAutoInc( STATEMENT )