我是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)
显示如下:
然而:
这是一个链接服务器连接。
要从表格中提取数据,我正在寻找INSERT INTO,我正在使用来自QRemote的SELECT ... SalesOrderLine从该表中提取数据。要INSERT到它,它非常相似,我正在使用INSERT INTO QRemote ... SalesOrderLine(TxnID,SalesOrderLineRefListID,SalesOrderLineDesc,SalesOrderLineRate)VALUES(123456,123456,Tracking,1.0)工作正常。
我想我的问题是:
是否可以编写一个触发器,将INSERT上的新数据自动附加到上面的SQL语句中?
答案 0 :(得分:0)
您可以为表格创建插入触发器,并从触发器中的“已插入”中获取值
CREATE TRIGGER ShipmentTrigger ON UPS_Shipment_History FOR INSERT AS INSERT INTO yourDifferenttable ( TxnID ,SalesOrderLineRefListID ) SELECT TxnID ,SalesOrderLineRefListID FROM inserted GO