如何在触发器中获取已删除测试的值?

时间:2010-09-28 19:55:04

标签: sql sql-server-2005 tsql triggers

我需要在Table1上对Delete进行触发。在从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

所以我需要从table1删除记录的值来更新table2。怎么样?

1 个答案:

答案 0 :(得分:3)

它应该位于触发器中可用的“已删除”表中。请参阅使用inserted and deleted tables

select * from deleted

请注意,如果您运行删除多个记录可以删除,并且您的触发器应考虑到'已删除'表包含多行。

有些事情:

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