Не уверен, чего вы действительно хотите достичь - но в SQL Server у вас есть два типа триггеров:
- ПОСЛЕ срабатывает после ВСТАВКИ, ОБНОВЛЕНИЯ, УДАЛЕНИЯ
- INSTEAD OF триггеры, которые могут перехватить операцию (INSERT, UPDATE, DELETE) и сделать что-то вместо этого
SQL Server не имеет триггеров BEFORE INSERT / UPDATE / DELETE, которые есть в других СУБД.
Вы можете иметь любое количество триггеров AFTER, но только один триггер INSTEAD OF для каждой операции (INSERT, UPDATE, DELETE).
Более распространенным случаем является триггер AFTER, например:
CREATE TRIGGER trgCheckInsertedValues
ON status_master
AFTER INSERT
AS
BEGIN
INSERT INTO dbo.temp(field1, field2, field3)
SELECT i.Name, i.Status
FROM inserted i
WHERE i.Status = 'FAIL'
END
Здесь я проверяю «вставленную» псевдотаблица, которая содержит все строки, вставленные в вашу таблицу, и для каждой строки, содержащей «status = FAIL», вы будете вставлять некоторые поля в таблицу «temp».
Опять же - не уверен, что вы действительно хотите в деталях - но это будет грубый план, как это сделать в коде SQL Server T-SQL.
Марк