Sql server 触发器中的错误

Sql server 触发器中的错误,sql-server,tsql,triggers,Sql Server,Tsql,Triggers,我试图创建一个触发器,一旦表intradayOHLC中发生更新,就应该触发该触发器。旧的和新的触发器必须插入OHLC_更新中 有人能检查一下触发器并告诉我错误在哪里吗 CREATE TRIGGER tr1 ON [Transaction].[IntradayOHLC] AFTER UPDATE AS INSERT INTO [dbo].[IntradayOHLC_update] VALUES(Symbol, Date, GetDate(), [Open], High, Low

我试图创建一个触发器,一旦表intradayOHLC中发生更新,就应该触发该触发器。旧的和新的触发器必须插入OHLC_更新中

有人能检查一下触发器并告诉我错误在哪里吗

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;

您应该使用
INSERT
from
SELECT
语法

如果要插入插入表和删除表中的
旧值
新值
,则应将这两个表合并

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 

我试过了,但它给了我一个无效的对象名“已删除”