首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在northwind上触发

在northwind上触发
EN

Stack Overflow用户
提问于 2016-06-24 09:30:25
回答 1查看 562关注 0票数 0

我有一个触发器的问题,它应该这样做:(在northwind上) after insert触发器,它计算Order Details Table中的价格总和,但它位于Orders Table中一个名为OrderTotal的新属性中

我试着这样做,但它不工作

代码语言:javascript
复制
CREATE TRIGGER TotalCalc
    ON  dbo.OrderDetails
    AFTER INSERT
AS declare @Price float , @Quan int , @Dis float , @Total float
BEGIN
    SELECT Orders.OrderId From Orders
    Select  @Price = OrderDetails.UnitPrice,
            @Quan = OrderDetails.Quantity,
            @Dis = OrderDetails.Discount,
            @Total = Orders.OrderTotal
FROM         OrderDetails INNER JOIN
                      Orders ON OrderDetails.OrderID = Orders.OrderId
    SET @Total = Sum(@Price * @Quan) - @Dis;

  Insert into Orders.OrderTotal values (@Total)

END
GO

谁能告诉我它是怎么工作的。

EN

回答 1

Stack Overflow用户

发布于 2016-06-24 09:59:04

正如您可能猜到的那样,它不工作。触发器不应返回任何select (第一个select)。触发器假定使用虚拟表inserteddeleted

最后,Insert into Orders.OrderTotal values (@Total)没有任何意义。它会创建一个不包含customeridemployeeid等任何细节的新orders行。

尝试使用OrderDetails中的orderidinserted中的UPDATE orders.orderTotalinserted中的线条求和。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38004357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档