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

2022-02-22 00:00:00 sql-server triggers asp.net-mvc-3

当前我有一个Item表和一个ItemWaste表。 这两个表都有一些字段,例如:Name、Amount等。但是ItemWaste表还有一个字段,那就是TimeWasted。 我希望自动将已删除项目从Item表插入到ItemWaste表,同时将删除时间插入TimeWasted字段。

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

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


解决方案

确定-没有问题。

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

相关文章