我有一個UPDATE
看起來像這樣:SQL TRIGGER處理多個插入的行
UPDATE STOR SET
STOR.BLOC1 = T.BLOC1,
STOR.BLOC2 = T.BLOC2,
STOR.BLOC3 = T.BLOC3
FROM BLDG B INNER JOIN STOR S
ON S.B_ID = B.B_ID
CROSS APPLY dbo.INVENTORIZE(B.B_ID) AS T;
而且其目的是要插入行(如日誌),每次更新上方TRIGGER
。
CREATE TRIGGER trgrCYCLE
ON STOR
FOR UPDATE
AS
DECLARE @BLDG int, @ACT varchar(4), @QTY decimal(3,1);
SET @BLDG = (SELECT B_ID FROM inserted)
SET @QTY= (SELECT BLOC1 FROM inserted)
SET @ACT = CASE WHEN @QTY < 0 THEN 'SELL'
ELSE 'BUY' END
INSERT INTO INVT VALUES (CURRENT_TIMESTAMP, @BLDG, @ACT, @QTY)
我有我需要的援助兩個問題:
具有多行
inserted
僞表返回錯誤的事實(「子查詢返回多個值,這不當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時允許。「)。我無法將類似問題的答案傳達給我的案例。如何對ň數BLOC列觸發工作(BLOC1,BLOC2,BLOC3,BLOCn ...)
您需要更好地定義2.「爲n個BLOC列工作」是什麼意思?目標表中是否有多列?您是否試圖在BLOC列中插入新行?現在這個要求非常寬鬆 - 很有道理。 –