【问题标题】:SQL Server Trigger - Insert the deleted record into another table with deletetimeSQL Server 触发器 - 使用 deletetime 将删除的记录插入另一个表
【发布时间】:2011-10-14 05:19:30
【问题描述】:

目前我有一个 Item 表和一个 ItemWaste 表。 两个表都会有一些字段,例如:Name、Amount 等。但 ItemWaste 表会有一个字段,即 TimeWasted。 我希望自动将Item表中的DELETED项插入到ItemWaste表中,同时将删除时间插入到TimeWasted字段中。

我不知道怎么做,是用触发器吗???

希望可以在这里得到一些帮助...感谢任何反馈...谢谢....

【问题讨论】:

    标签: sql-server asp.net-mvc-3 triggers


    【解决方案1】:

    当然 - 没问题。

    你需要一个基本的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 行,它将被称为 once,伪表Deleted 将包含 100 行。触发器每行调用一次(常见的误解)。

    【讨论】:

    • 顺便说一句,我不太清楚你所说的每批一次是什么意思,如果我删除 3 行,删除的表仍然会有 3 行仪式?
    • @user834754: 是的 - 如果您有一个删除 3 行的 SQL 语句 - 您的触发器将被触发 一次Deleted 伪表将包含 3 行,并且因此 3 行被插入到您的 ItemWaste 表中。
    【解决方案2】:

    是的,只需编写一个触发器,您就可以在另一个表中执行delete 操作时insert 一行,看看Triggers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2011-01-15
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多