SQL Trigger - помогите с основами - PullRequest
2 голосов
/ 18 мая 2011

Я редко пишу триггеры. Я могу использовать помощь в настройке вещи.

CREATE TRIGGER audit_tableName
ON dbo.tableNameAudit
AFTER CREATE, UPDATE, DELETE on tableName
AS
BEGIN
  --Get Created,updated,deletes items
  INSERT into dbo.tableNameAudit(columns) VALUES ([allCUDitems])

END
GO

Как получить итерацию любых элементов CREATED, UPDATED, DELETED, вызвавших срабатывание триггера?

Ответы [ 3 ]

2 голосов
/ 18 мая 2011

проверить эту статью MSDN .

Короче говоря, есть две специальные таблицы, вставленные и удаленные, которые доступны в вашем триггере.вставленный будет содержать обновленные строки и вставленные строки, а удаленные будут содержать обновленные строки и удаленные строки.

убедитесь, что вы понимаете, что для пакетной операции триггер срабатывает только один раз, поэтому убедитесь, что в этих таблицах присутствует несколько строк.

1 голос
/ 18 мая 2011

Триггеры имеют доступ к двум псевдотаблицам : INSERTED и DELETED.Как следует из их названия, эти псевдотаблицы будут содержать все значения, добавленные или удаленные из таблицы.Обновление приведет к появлению строки в каждой из псевдотаблиц.Структура этих псевдотаблиц идентична структуре таблицы, в которой объявлена ​​таблица.

Кроме того, функция UPDATE() внутри триггера вернет TRUE для столбцов, которыебыли обновлены.

0 голосов
/ 18 мая 2011

Вы можете использовать INSERTED. [COLUMN] ИЛИ

SELECT [COLUMN] 
FROM INSERTED

Это на SQL Server.

Надеюсь, это поможет.

...