INSERT后的SQL触发器

时间:2018-03-27 21:02:52

标签: sql sql-server

我是SQL触发器的新手,我正在尝试在INSERT语句上创建一个触发器,但我遇到了一些麻烦。

目标:

我从名为UPS Worldship的应用程序导入数据,该应用程序只是从指定字段将4行数据(TxnID,SalesOrderLineRefListID,SalesOrderLineDesc,SalesOrderLineRate)插入到我的SQL服务器中。在这个INSERT上,我希望构建一个触发器,它将从TxnID和SalesOrderLineRefListID列的最新插入中获取值,并将该数据放入一个新的insert语句中,这将影响另一个表。

这里的问题是TxnID和SalesOrderLineRefListID必须匹配不同表中的记录,否则插入将失败。

有没有办法在插入行时创建一个触发器,自动将该数据放入影响另一个表的新INSERT语句中?

例如:

收到的数据以INSERT INTO进入dbo.UPS_Shipment_History(TxnID,SalesOrderLineRefListID,SalesOrderLineDesc,SalesOrderLineRate)VALUES(123456,123456,Tracking,1.0)

显示如下:

SQL server image reference

然而:

这是一个链接服务器连接。

要从表格中提取数据,我正在寻找INSERT INTO,我正在使用来自QRemote的SELECT ... SalesOrderLine从该表中提取数据。要INSERT到它,它非常相似,我正在使用INSERT INTO QRemote ... SalesOrderLine(TxnID,SalesOrderLineRefListID,SalesOrderLineDesc,SalesOrderLineRate)VALUES(123456,123456,Tracking,1.0)工作正常。

我想我的问题是:

是否可以编写一个触发器,将INSERT上的新数据自动附加到上面的SQL语句中?

1 个答案:

答案 0 :(得分:0)

您可以为表格创建插入触发器,并从触发器中的“已插入”中获取值

more on sql trigger

CREATE TRIGGER ShipmentTrigger ON UPS_Shipment_History
FOR INSERT
AS
INSERT INTO yourDifferenttable (
  TxnID
  ,SalesOrderLineRefListID
  )
SELECT TxnID
  ,SalesOrderLineRefListID
FROM inserted
GO