SQL Server触发器 - 使用deletetime将已删除的记录插入另一个表中

时间:2011-10-14 05:19:31

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

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

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

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

2 个答案:

答案 0 :(得分:8)

当然 - 不是问题。

您需要一个基本的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行。触发器每行调用一次(一种常见的误解)。

答案 1 :(得分:0)

是的,在另一个表格中执行insert操作后,您可以delete一行编写触发器进行简化,查看Triggers