使用“Northwind”示例:
我想在orderdetails表上创建一个insert触发器,以便每次插入orderdetails时,它都会获得在products表中定义的unitcost的当前值。
应该是这样的,但我很难把它弄对。你能帮忙吗?
创建触发器触发器1
按订单明细作为OD
用于插入
作为
--节约单位成本
od.unitcost=(从产品中选择unitcost作为p
其中p.productid=i.productid)
我正在使用SQL Server 2008。
谢谢!

最佳答案

您必须将inserted表连接到orderdetails表以了解插入的内容。就像这样:

CREATE TRIGGER Trigger1
ON OrderDetails as od
FOR INSERT
AS
BEGIN

    update od
    set unitcost = p.unitcost
    from
        orderdetails od
        inner join inserted i on
            od.orderlineid = i.orderlineid
        inner join produts p on
            p.productid = od.productid

END

10-07 15:30