删除触发器以将条目插入表中

Posted

技术标签:

【中文标题】删除触发器以将条目插入表中【英文标题】:Delete trigger to insert entry into table 【发布时间】:2016-05-10 21:07:13 【问题描述】:

在我的DEV_SQL 数据库中创建了一个Customers_Audit 表,其中包含以下列:

[AuditID] int IDENTITY
[CustomerID] nchar(5)
[UserName] nvarchar(50)
[DeleteDate] smalldatetime

我正在尝试编写一个删除触发器,以在每次从Customers 表中删除一行时向Customers_Audit 表中插入一个条目,需要一些帮助哦聪明的人!

【问题讨论】:

您可以直接将帖子名称复制/粘贴到 Google 中,答案就在前 3 个结果中。 INSERT deleted values into a table before DELETE with a DELETE TRIGGER的可能重复 【参考方案1】:

您需要这样的东西 - 只需将行插入您的 AFTER DELETE 触发器中的 Customers_Audit 并根据需要设置固定值:

CREATE TRIGGER trgAfterDelete 
ON dbo.Customer
AFTER DELETE
AS 
    -- insert into the audit table - explicitly specifying the column names to use
    INSERT INTO dbo.Customers_Audit(CustomerId, UserName, DeleteDate)
        -- make sure to respect the fact that the "Deleted" table might
        -- contain *multiple* rows if your DELETE statement deleted 
        -- more than a single row - use proper set-based code!
        SELECT
            d.CustomerId, d.UserName, SYSDATETIME()
        FROM 
            Deleted d

【讨论】:

以上是关于删除触发器以将条目插入表中的主要内容,如果未能解决你的问题,请参考以下文章

更新/插入/删除表中的行后触发的触发器有问题

更新同一表中的值的 PL/SQL 插入和删除触发器

带有触发器错误的 Microsoft Access 链接表 (ASE)

插入触发器后删除

更新触发器以将两个不同表中的数据添加到审计表中

插入条件后创建触发器