当使用触发器在表中插入多行时,如何将记录从一个表插入到另一个表中?

时间:2013-11-13 14:39:17

标签: sql-server sql-server-2008

我有2张桌子: Table 1Table 2。 我想做什么,我想使用触发器从Table1到Table2复制新插入的记录。 我在Table1上创建了触发器,当在table1中插入大量数据时,它将复制Table2中新插入的记录。它适用于单行插入,但不适用于多行插入。 请告诉我,这有什么问题?

CREATE TRIGGER [dbo].[TRIG_TABLE1]
ON [dbo].[Table1]
AFTER INSERT AS
IF @@ROWCOUNT >=1  
BEGIN
INSERT INTO Table2
(CustID
,DateCreated
,DateModify)
SELECT i.CustID
,i.DateCreated
,i.DateModify
FROM Table1 as i
WHERE (i.CustID  IN (select CustID from INSERTED) and i.DateCreated  IN (select   DateCreated from INSERTED))

1 个答案:

答案 0 :(得分:3)

我不明白你为什么不直接使用INSERTED伪表:

CREATE TRIGGER [dbo].[TRIG_TABLE1] 
ON [dbo].[Table1] AFTER INSERT AS
BEGIN
    INSERT INTO Table2(CustID,DateCreated,DateModify)
    SELECT CustID, DateCreated, DateModify
    FROM INSERTED
END