sql - 在插入触发器上从表 1 插入到表 2

标签 sql sql-server tsql triggers

我是 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 可以检查)。任何方向将不胜感激。

最佳答案

当您处于 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

http://msdn.microsoft.com/en-us/library/ms189799.aspx

关于sql - 在插入触发器上从表 1 插入到表 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3373404/

相关文章:

sql - 复杂的 postgres json order by 子句

sql - MySQL 子查询..在表中输入 3 次后未提供正确的信息

sql-server - SQL Server 管理工作室 2016 : The application cannot start

sql - 从 Sql 服务器中的 where 子句中排除函数

sql-server - 从 SQL Server 中的 3 个表创建时间线

sql - 许多单独更新与一次大型更新的速度

mysql - 如何才能最大程度地减少在不经意间更改数据而甚至没有注意到的情况?

mysql - 旋转 SQL 表

sql-server - SQL Server 2005 : T-SQL to temporarily disable a trigger

sql - orientdb中的sql批处理和事务有什么区别?