我在表[CART]
的更新上编写了一个触发器,以计数并将值插入到其他表[HEADERS]
的列[SUM]
中。它有效,但仅适用于[CART].[NUMBER] = [HEADERS].[NUMBER]
的1行。 [NUMBER]
中的[CART]
列不是唯一的,我想对[CART]
相同的[NUMBER]
中的所有值进行计数。这表示具有相同编号的每一行的[AMOUNT]*[PRICE]
,将其添加并插入列[HEADERS].[SUM]
这是我得到的:
CREATE TRIGGER [dbo].[sum] ON [dbo].[CART] AFTER UPDATE AS
BEGIN
DECLARE @RESULT DECIMAL
DECLARE @AMOUNT FLOAT
DECLARE @PRICE FLOAT
DECLARE @NUMBER FLOAT
SET NOCOUNT ON;
IF UPDATE([NUMBER]) or UPDATE([AMOUNT]) or UPDATE([STATUS])
BEGIN
SELECT @AMOUNT=[AMOUNT],@PRICE=[PRICE],@NUMBER=[NUMBER] FROM inserted
IF @NUMBER is not NULL
BEGIN
SELECT @RESULT=@AMOUNT * @PRICE
UPDATE HEADERS SET SUM=@RESULT WHERE NUMBER=@NUMBER
END
END
GO
我不太擅长SQL,因此无法找到适合此任务的正确语法。你能帮我吗?
您的触发器代码无法处理多行更新时的情况。