我对SQL很新,请原谅我的无能。
我正在尝试编写一个触发器,在插入表1时,将该记录插入表2中。
表1为[rps_lab_dev].[dbo].[Lab_Employee_Time_Off]
表2为[dbo].[Lab_Employee_Time_Off_Detail]
CREATE TRIGGER updatetrig
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]
FOR INSERT
AS
...
我不确定从哪里开始(如果这是正确的,我现在没有sql检查)。任何方向将不胜感激。
答案 0 :(得分:5)
对于SQL Server ...
CREATE TRIGGER updatetrig
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]
FOR INSERT
AS
INSERT INTO [dbo].[Lab_Employee_Time_Off_Detail] (Column1, Column2, Column3)
SELECT Column1, Column2, Column3 FROM inserted
只需将Column1,Column2和Column3替换为列名。
答案 1 :(得分:5)
当您处于INSERT的触发器中时,您将获得一组名为INSERTED的记录。您可以使用它来执行您想要的任何操作。
如果您处于UPDATE的触发器中,那么您将获得两组数据DELETED和INSERTED - 逻辑上,DELETED是将被新INSERTED数据覆盖的旧数据。
在你的情况下,让我们在这里做几件事。首先,它是一个INSERT触发器,所以我们称之为。然后让我们从INSERTED获取数据(它将具有与传入数据相同的列名)并使用它插入到您的详细信息表中
CREATE TRIGGER Lab_Employee_Time_Off_InsertAction
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]
FOR INSERT
AS
INSERT INTO [dbo].[Lab_Employee_Time_Off_Detail] (Col01, Col02, Col03)
SELECT Col1, Col2, Col3
FROM Inserted
GO