我的库存需要限制。我应该确保我的主仓库的库存数量不超过1000。所有多余的单元都被发送到外部存储站点,并分别进行跟踪。我需要为"ProductInventory“表编写一个触发器,以确保当有更新时,库存不会超过1000个单位。
创建触发器tgrExcessInventory
在production.productinventory上
更新后
作为
开始
(这就是我在sql语句中迷路的地方,我需要执行该语句以确保不超过限制。)
我需要什么样的语言才能让这个触发器的上限达到1000?
发布于 2017-08-05 22:56:28
可能有点晚了,但试试这个:
CREATE TRIGGER tgrExcessInventory
on Production.ProductInventory
FOR UPDATE
AS
IF EXISTS
(SELECT 'True'
FROM Inserted i
JOIN Deleted d
ON i.productID = d.ProductID
AND i.locationID = d.LocationID
WHERE (d.quantity + i.quantity) >= 1000 OR
i.quantity >=1000
)
BEGIN
RAISERROR('Cannot increase stock where units would be over 1,000 units',16,1)
ROLLBACK TRAN
END
这里的代码将触发触发器,在这种情况下,您可以看到set quantity = quantity +任何使其达到1000或更大的值,也可以直接set quantity = 1000+
发布于 2017-04-25 16:12:50
IF (选择COUNT(1) FROM production.productinventory) >= 1000 BEGIN //Do your thing END
你应该查看This问题以获得更多的答案。不幸的是,MSSQL不支持戈登·利诺夫在评论中提到的“更新之前的”,但是您可以轻松地在触发器中使用DELETED和INSERTED表。
我希望它能有所帮助!干杯!
https://stackoverflow.com/questions/43599279
复制相似问题