我在批准可触发查找并将数据添加到新表的项目后获得了触发器。我现在收到“子查询返回的值多于1”
我还阅读了其他答复,但没有广泛地解决该问题。.因此我目前没有答案。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trg_BID_APROVAL]
ON [dbo].[BID]
AFTER UPDATE
AS
BEGIN
IF (SELECT BID_APPROVED FROM INSERTED) = 0 --if NO then do nothing else create and send purchase order
BEGIN
RETURN
END
ELSE
DECLARE @BIDDY_ID INT;
SELECT @BIDDY_ID = BID_ID FROM INSERTED;
DECLARE @SUPPY_ID TABLE(SUP_ID INT,BID_ID INT,PO_DATE DATE DEFAULT GETDATE());
INSERT INTO @SUPPY_ID(SUP_ID, BID_ID)
SELECT
SUP_ID,
BID_ID
FROM
BIDLINE BL
INNER JOIN
PRODUCTS P ON BL.PROD_ID = P.PROD_ID
WHERE
BID_ID = @BIDDY_ID AND SUP_ID > 0
GROUP BY
SUP_ID,BID_ID;
INSERT INTO PURCHASE_ORDER (BID_ID, SUP_ID, PO_DATE)
SELECT BID_ID, SUP_ID, PO_DATE
FROM @SUPPY_ID
END
实际上问题是在if
条件下,我们可以像这样更改条件