Триггер SQL Server - вставьте удаленную запись в другую таблицу со временем удаления - PullRequest
5 голосов
/ 14 октября 2011

В настоящее время у меня есть таблица Item и ItemWaste.Обе таблицы будут иметь некоторые поля, такие как: Имя, Количество и т. Д. Но таблица ItemWaste будет иметь еще одно поле, которое является TimeWasted.Я хочу автоматически вставить элемент DELETED из таблицы Item в таблицу ItemWaste и одновременно вставить время удаления в поле TimeWasted.

Я не представляю, как это сделать, использует ли он триггер???

Надеюсь, что вы можете получить помощь здесь ... Ценю любые отзывы ... Спасибо ....

Ответы [ 2 ]

8 голосов
/ 14 октября 2011

Конечно - не проблема.

Вам нужен базовый AFTER DELETE триггер - примерно так:

CREATE TRIGGER trg_ItemDelete 
ON dbo.Item 
AFTER DELETE 
AS
    INSERT INTO dbo.ItemWaste(Name, Amount, TimeWasted)
        SELECT d.Name, d.Amount, GETDATE()
        FROM Deleted d

Вот и все! Помните одно: триггер вызывается один раз за серию - например, если вы удалите 100 строк сразу, он будет называться один раз , а псевдотаблица Deleted будет содержать 100 строк. Триггер не вызывается один раз в строке (распространенное заблуждение).

0 голосов
/ 14 октября 2011

Да, просто записав триггер, вы можете insert строку, когда действие delete выполняется в другой таблице, посмотрите на Триггеры

...