我有一个Product表和一个ProductPriceLog表来维护产品的价格。
假设产品表有3个字段[ProductId, ProductName, ProductPrice]
,价格历史记录只有2个字段[ProductId(fk), productprice]
我正在尝试编写一个触发器,每当我们更新产品价格时都会添加一个日志条目。
CREATE TRIGGER price_change_trg
ON PRODUCT
AFTER INSERT OR UPDATE OF ProductPrice ON PRODUCT
BEGIN
INSERT INTO ProductPriceLog ( @idd , ProductPrice)
END;
具体来说,如何从Product表的行中获取更新后的productId?
答案 0 :(得分:0)
您可以参考我的解决方案。希望能帮到我的朋友。
CREATE TRIGGER price_change_trg
ON PRODUCT
AFTER INSERT, UPDATE
AS
BEGIN
declare @productId int;
declare @ProductPrice decimal(10,2);
select @productId = i.ProductId from inserted i;
select @ProductPrice = i.ProductPrice from inserted i;
INSERT INTO ProductPriceLog VALUES ( @productId , @ProductPrice )
END;
答案 1 :(得分:-1)
如果我理解了您的问题,您必须使用插入表,其中包含刚刚插入产品表select @idd=productid from inserted