2016-01-16 69 views
-1

我試圖創建應觸發一次在表intradayOHLC的更新出現新舊必須在OHLC_update插入錯誤觸發

可有人請檢查觸發,並告訴我一個觸發哪裏是錯誤

CREATE TRIGGER tr1 
ON [Transaction].[IntradayOHLC] 
AFTER UPDATE 
AS 
    INSERT INTO [dbo].[IntradayOHLC_update] 
    VALUES(Symbol, Date, GetDate(), [Open], High, Low, Volume, newOpen, newHigh, newLow, newVolume); 

    SELECT Symbol, date, [Open], Low, Volume FROM DELETED; 
    SELECT newOpen, newLow, newVolume FROM INSERTED; 

回答

2

如果要插入從插入oldnew值和已刪除的表,那麼你應該加入您應該使用INSERTSELECT語法

兩個表。

INSERT INTO [dbo].[intradayohlc_update] 
      (symbol, 
      date, 
      .....) 
SELECT d.symbol, 
     d.date, 
     Getdate(), 
     d.[open], 
     d.low, 
     d.volume, 
     i.newopen, 
     i.newlow, 
     i.newvolume 
FROM deleted d 
     INNER JOIN inserted i 
       ON d.primary_key_col = i.primary_key_col 
+0

我嘗試過,但它給了我「刪除」 – Mira

+0

TNX我做了一些修改,並制定了 謝謝了無效的對象名稱:) – Mira