Как получить значение удаленного теста в триггере? - PullRequest
1 голос
/ 28 сентября 2010

Мне нужно поставить триггер на Delete on Table1.При удалении записи из Table1 мне нужно обновить Table2 в триггере, но мне нужно значение удаленной записи в триггере.Пример: -

IF OBJECT_ID ('UpdateLog','TR') IS NOT NULL
    DROP TRIGGER UpdateLog;
GO
CREATE TRIGGER UpdateLog
ON Table_1
AFTER DELETE 
AS
   UPDATE Table_2
    SET Date1 = getdate()
    WHERE (UID from deleted record from Table1)
GO

Поэтому мне нужно значение удаленной записи из таблицы1 для обновления таблицы2.Как?

1 Ответ

3 голосов
/ 29 сентября 2010

Должен быть в «удаленной» таблице, доступной в триггере.См. Использование вставленных и удаленных таблиц

select * from deleted

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

Что-то вроде:

UPDATE t
from table_2 t
inner join deleted d on d.UID = t.UID
    SET t.Date1 = getdate()
...