我有table1
列(date, field1, field2, field3, field4, field5, field6, field7, field8
)
我有另一个table2
列(date, field1,someothercolumns, field3, field5, field7, unrelatedcolumns1, someothercolumns2
)
现在每次将新数据导入table2
时,我都希望来自date, field1, field3, field5, field7
的列(table2
)的数据自动复制到table1
({{ 1}})。
date, field1, field3, field5, field7
中缺少的列可以包含空值
是否可以使用触发器或任何存储过程?
答案 0 :(得分:1)
尝试这样的事情:
CREATE TRIGGER YourTriggerName
ON dbo.Table2
AFTER INSERT
AS BEGIN
INSERT INTO dbo.Table1(date, field1, field3, field5, field7)
SELECT
date, field1, field3, field5, field7
FROM
Inserted
END
在触发器中,您可以访问包含受影响的所有行的“伪”表Inserted
(以及Deleted
和UPDATE
触发器的DELETE
)导致触发器触发的声明。
这很重要:如果你有一个插入10行的INSERT
语句,你的触发器将触发一次,伪表Inserted
将包含10行。不要假设你的触发器每插入一次就触发一次 - 事实并非如此。
因此,在此触发器中,每当INSERT
进入table2
时,相关列都会从Inserted
伪表中提取并插入table1
。
这能解决您的问题吗?