Sql 在插入触发器上从表1插入到表2
我对SQL非常陌生,所以请原谅我的无能 我试图编写一个触发器,在插入表1时,将该记录插入表2中 表1是Sql 在插入触发器上从表1插入到表2,sql,sql-server,tsql,triggers,Sql,Sql Server,Tsql,Triggers,我对SQL非常陌生,所以请原谅我的无能 我试图编写一个触发器,在插入表1时,将该记录插入表2中 表1是[rps\u lab\u dev].[dbo].[lab\u Employee\u Time\u Off] 表2是[dbo].[Lab\u Employee\u Time\u Off\u Detail] CREATE TRIGGER updatetrig ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off] FOR INSERT AS ... 我不确
[rps\u lab\u dev].[dbo].[lab\u Employee\u Time\u Off]
表2是[dbo].[Lab\u Employee\u Time\u Off\u Detail]
CREATE TRIGGER updatetrig
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]
FOR INSERT
AS
...
我不确定从这里走到哪里(如果这是正确的,我现在没有sql要检查)。任何方向都将不胜感激 对于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即可。当您处于插入触发器中时,就会得到一组名为INSERTED的记录。您可以使用它来执行您想要的任何操作 如果您处于更新的触发器中,那么您将得到两组删除和插入的数据—逻辑上,删除的数据是将被新插入的数据覆盖的旧数据 在你的情况下,让我们在这里做几件事。首先,它是一个插入触发器,所以我们称之为插入触发器。然后,让我们从INSERTED中获取数据(它将具有与传入数据相同的列名),并使用它将数据插入到details表中
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
您使用的是什么RDBMS?触发器语法在Oracle、MySQL等之间有所不同。您好,欢迎使用堆栈溢出。这是哪个数据库引擎?我希望我知道如何像这个板上的许多其他查询一样“嗅”T-SQL/SQL Server查询…@sheepsimulator:方括号,dbo和触发器-如果只有方括号,可能是MS Access。TSQL可以是Sybase,但这样的问题很少见……另一件很重要的事情是,SQL Server中的触发器在每次插入时运行一次,如果插入一组记录,则必须能够处理该问题。这段代码可以做到这一点,但我希望问这个问题的人理解为什么要使用基于集合的逻辑,而不是试图将事物设置为变量并使用values子句。另外,始终通过执行多行插入更新或删除来测试触发器。