Учитывая, что SQL Server не позволяет модификацию логических таблиц INSERTED и DELETED в триггере, существует ли простой способ изменить значение отдельного столбца и не иметь для переписывания всего оператора вставки?
Например, таблица, к которой я применяю триггер, имеет 20 столбцов. Я хочу изменить значение от таблицы INSERTED для одного столбца (на строку) и затем вставить ту строку в таблицу. Я могу сделать так, не пишущий оператор вставки с 19 столбцами плюс один столбец, значение которого я изменяю?
Да, просто используйте триггер «после вставки» вместо триггера «вместо вставки».
Таким образом, строка уже была вставлена в таблицу, и все, что вам нужно сделать, это выполнить (тщательно созданный) оператор обновления, обычно путем внутреннего соединения с таблицей INSERTED в поле первичного ключа.
Чтобы добавить больше деталей к ответу BradCs:
Синтаксис для обновления с объединением немного нестабилен
Update table
set columnA = inserted.columnA / 10
from table
inner join inserted on table.id = inserted.id