Тем не менее, это главный красный флаг, если вы ожидаете установить значения переменных, подобные значениям в триггере. Обычно это означает, что триггер плохо спроектирован и нуждается в пересмотре. Этот код ожидает, что будет вставлена только одна запись, и это не всегда так. При вставке или обновлении нескольких записей будет вставлено несколько записей, и триггер должен учитывать это (пожалуйста, без использования триггера !!!). Ни при каких обстоятельствах триггеры не должны быть написаны для обработки только вставок / обновлений или удалений только одной записи. Они должны быть написаны для обработки наборов данных.
Пример для вставки значений из вставленной в другую таблицу, где триггер находится в таблице1:
CREATE TRIGGER mytrigger on table1
AFTER INSERT
AS
INSERT table2 (field1, field2, field3)
SELECT field1, 'test', CASE WHEN field3 >10 THEN field3 ELSE 0 END
FROM inserted