触发插入表

时间:2010-04-30 14:47:48

标签: sql-server triggers

我有sql server 2005,需要为插入查询创建触发器。

我将表naemd作为“Log”,其列名为UserID,UserName,LogDate,LogTime,并希望将数据传输到名为“DataTable”的具有相同列名的其他表中。

我创建了触发器

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TRIGGER [dbo].[Transfer] on [dbo].[Log]
AFTER INSERT
AS
BEGIN

insert into DataTable (UserID,UserName,LogDate,LogTime)

SELECT UserID,UserName,LogDate,LogTime 
FROM Log where UserID not in(select UserID from DataTable)

END

新数据每天在“日志”表中更新,因此我想通过触发器将新数据从Log表传输到DataTable。执行时间非常长,因此没有输出。

2 个答案:

答案 0 :(得分:2)

你在触发器中有“插入”表,所以你可以从中插入数据

insert into DataTable (UserID, UserName, LogDate, LogTime)
select UserID, UserName, LogDate, LogTime 
from inserted

答案 1 :(得分:0)

在触发器定义中,您应该使用inserted表,其中包含添加到日志表的所有行。