如何在每次插入 sql 服务器 table 后自动触发触发器?

How to fire trigger after every insert in sql server table automatically?

我是 SQL 服务器触发器的新手。我最近遇到一个问题,我有两个 table,分别命名为 tbl_Itemtbl_changePrice。我想在 tbl_changeprice 插入新行时更新 tbl_Item。使用此新行名称,相同日期的数据将在 tbl_item table 中更新。

这是我尝试更新 table:

的触发器
Alter TRIGGER trgAfterInsert ON [dbo].[tbl_changePrice] 
After insert
AS
    declare @itemname int;
    declare @saleprice decimal(18,2);
    declare @buyprice decimal(18,2);

    select @itemname=i.name from inserted i;    
    select @saleprice=i.saleprice from inserted i;  
    select @buyprice=i.pprice from inserted i;  

    update tbl_Item set sellingPrice= @saleprice, buyingPrice= @buyprice where name= @itemname

    PRINT 'AFTER INSERT trigger fired.'
GO

要处理一次插入的多行 - 您需要重写触发器才能处理多行 Inserted - 像这样:

ALTER TRIGGER trgAfterInsert 
ON [dbo].[tbl_changePrice] 
AFTER INSERT
AS
    UPDATE dbo.tbl_Item 
    SET sellingPrice = i.saleprice, buyingPrice = i.pprice 
    FROM Inserted i
    WHERE tbl_Item.name = i.name

    PRINT 'AFTER INSERT trigger fired.'
GO