插入时的SQL Server触发器以及如何引用插入的数据

时间:2010-12-09 23:31:01

标签: sql-server triggers insert

高级别我有两个表需要镜像一些数据。我无法通过并更改所有代码以写入两者,所以我想我会使用SQL触发器将数据插入到第二个表中的任何时候。这是我被困的地方:

CREATE TRIGGER new_trigger_INSERT
ON old_table
FOR INSERT
INSERT INTO new_table (id, first_name, last_name)
VALUES () --This is where I'm lost, I need to insert some of the data from the insert that executed this trigger

任何帮助都表示赞赏,如果有更好的方法可以让我知道。

2 个答案:

答案 0 :(得分:12)

使用' inserted '表:

CREATE TRIGGER new_trigger_INSERT 
ON old_table 
FOR INSERT 
INSERT INTO new_table (id, first_name, last_name) 
SELECT col1, col2, col3 FROM inserted

[PS:别忘了确保你的触发器处理多行...]

参考。 Create Trigger

好文章:Exploring SQL Server Triggers

答案 1 :(得分:1)

在触发器中,您有“已插入”和“已删除”表。在这种情况下,您只使用“inserted”表,但在更新触发器中,您同时使用两者。