我有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。执行时间非常长,因此没有输出。
答案 0 :(得分:2)
你在触发器中有“插入”表,所以你可以从中插入数据
insert into DataTable (UserID, UserName, LogDate, LogTime)
select UserID, UserName, LogDate, LogTime
from inserted
答案 1 :(得分:0)
在触发器定义中,您应该使用inserted
表,其中包含添加到日志表的所有行。