我目前在表中使用触发器将最后一行复制到基于 WHERE 条件和 ORDER BY 的指定表中。使用一个触发器可以正常工作并复制到相应的表中。但是两个触发器都在运行,导致前一行的重复出现在我不想插入的表中。(SQL2008 管理工作室)。我也有根据零件号发送此行的特定表。这是结构:
ALTER TRIGGER NewT3650 ON JD_Passdata
FOR INSERT
AS
INSERT T3_650_TestData (SerialNumber, Partnumber, etc)
SELECT TOP 1 SerialNumber, Partnumber, etc
FROM JD_Passdata
WHERE partnumber = 'T3_650'
ORDER BY passdata_ndx DESC
ALTER TRIGGER NewT4450 ON JD_Passdata
FOR INSERT
AS
INSERT T4_450_TestData (SerialNumber, Partnumber, etc)
SELECT TOP 1 SerialNumber, Partnumber, etc
FROM JD_Passdata
WHERE partnumber = 'T4_450'
ORDER BY passdata_ndx DESC
原始 PassData 表:
201244999, T4_450
201245001, T3_650
201245002, T3_650
201245003, T3_650
返回表 1 的结果
201245001, T3_650
201245002, T3_650
201245003, T3_650
返回表 2 的结果
201244999, T4_450
201244999, T4_450
201244999, T4_450
我希望这是一个 OR 条件或 UNION,它只取最后一行并将其输入到正确的表中,并尽可能删除额外的触发器。否则,检查重复和更新也可能会这样做。此外,数据库将变得非常大,以执行 DESC,每个条目可能会变慢。删除订单的方法也是一个考虑因素。
任何建议将不胜感激...... THX