【问题标题】:How to get value of deleted test in trigger?如何在触发器中获取已删除测试的值?
【发布时间】:2011-04-18 12:11:25
【问题描述】:

我需要在 Table1 上的 Delete 上放置一个触发器。从表 1 中删除记录时,我需要更新触发器中的表 2,但我需要触发器中已删除记录的值。 示例:-

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。怎么样?

【问题讨论】:

    标签: sql sql-server-2005 tsql triggers


    【解决方案1】:

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

    select * from deleted
    

    请注意,如果您运行 delete 可以删除多条记录,并且您的触发器应考虑到“已删除”表包含多于一行。

    类似于:

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

    【讨论】:

      猜你喜欢
      • 2015-10-21
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      相关资源
      最近更新 更多