我有以下表格:
TableStaff
UserId, Username, Firstname, Lastname
1001 CLWA Clara Wallace
1002 RITA Ricky Tate
1003 PAEV Pat Evans
TableFeatures
UserId, Feature, Notes, LogDate
1001 901 Note1 2018-06-15
1002 905 Note111 2018-06-17
1003 903 Note222 2018-06-18
TABLEEXPORT
UserId, Username, Firstname, Lastname, Feature, Notes
1001 CLWA Clara Wallace 901 Note1
1002 RITA Ricky Tate 905 Note111
1003 PAEV Pat Evans 903 Note222
我们有一个前端应用程序,我们可以从中选择用户和功能,然后将其插入 TableFeatures 。 每次插入新记录时,我都希望将新记录插入 TableExport 。
每天晚上10点,计划作业会将数据从 TableExport 导出到CSV,然后表格会被截断。
我不确定如何创建可以复制用户名,名字,姓氏以及 UserId,功能,备注
的触发器我有以下触发器仅从 TableFeatures
复制 UserId,功能,备注CREATE TRIGGER trig_TableFeatures ON TableFeatures
FOR INSERT
AS
INSERT INTO TableExport (UserId, Feature, Notes)
SELECT UserId, Feature, Notes from Inserted
GO
非常感谢您对此的任何帮助。谢谢。
答案 0 :(得分:0)
如果我理解正确,您只需要JOIN
:
CREATE TRIGGER trig_TableFeatures ON TableFeatures
FOR INSERT
AS
BEGIN
INSERT INTO TableExport (UserId, Username, Firstname, Lastname, Feature, Notes)
SELECT i.UserId, s.Username, s.Firstname, s.Lastname, i.Feature, i.Notes
FROM Inserted i JOIN
TableStaff s
ON i.UserId = s.UserId
END;
答案 1 :(得分:0)
戈登的答案仅是正确的,您只需要一个联接,因为您提到了该错误,所以我尝试自己在sql sever 2016上运行,对我来说很好。这是代码。
insert into TabelExport
(userid,username,firstname,
lastname,feature,notes)
select i.userid,ts.username,
ts.firstname,
ts.lastname,i.features,
i.notes
from inserted i
inner join TableStaff ts
on (i.userid=ts.userid);