Триггер INSERT - триггер, который выполняется всякий раз, когда оператор INSERT вставляет данные в таблицу или представление, для которого определен этот триггер.
Когда срабатывает триггер INSERT, новые строки добавляются и к основной таблице, и к таблице inserted. Таблица inserted - логическая таблица, которая содержит копии вставляемых строк. Таблица inserted содержит журналированную деятельность оператора INSERT. Таблица inserted позволяет Вам ссылаться на журнальные данные инициализации оператора INSERT. Триггер может проверять таблицу inserted для определения того, какие действия должны быть им выполнены. Строки в таблице inserted всегда являются дубликатами одной или нескольких строк в базовой таблице.
Любая деятельность модификации данных (операторы INSERT, UPDATE, DELETE) регистрируется в журнале транзакций, но его информацию нельзя считывать. Однако, таблица inserted позволяет Вам ссылаться на зарегистрированные изменения, которые вызвал оператор INSERT. Тогда Вы можете сравнить изменения (вставленные данные), чтобы проверить их или предпринять дальнейшие действия. Кроме того, Вы можете ссылаться на вставленные данные, без необходимости сохранения информации в переменных.
За дополнительной информациейо создании триггеров INSERT обратитесь к разделу “CREATE TRIGGER (Transact-SQL)” в SQL Server Books Online.
В следующем коде демонстрируется создание триггера INSERT insrtWorkOrderна таблице Production.WorkOrderбазы данныхAdventureWorks. Заметьте, что таблица insertedиспользуется для работы со значениями, которые вызвали выполнение триггера.
CREATE TRIGGER [insrtWorkOrder] ON [Production].[WorkOrder]
AFTER INSERT AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [Production].[TransactionHistory](
[ProductID],[ReferenceOrderID],[TransactionType]
,[TransactionDate],[Quantity],[ActualCost])
SELECTinserted.[ProductID],inserted.[WorkOrderID]
,'W',GETDATE(),inserted.[OrderQty],0
FROM inserted;
END;
Триггер DELETE – специальный вид хранимой процедуры, которая выполняется всякий раз, когда оператор DELETE удаляет данные из таблицы или представления, на котором этот триггер был определен.