CREATE TRIGGER tr_tb_insert
   ON tb
   AFTER INSERT
AS 
BEGIN
SET NOCOUNT ON;
UPDATE TB SET A=T2.A,B=T2.B,C=T2.C
FROM TB T1
JOIN TBTEST T2 ON T1.ID=T2.ID
WHERE T1.ID IN (SELECT ID FROM inserted);
END
GO

解决方案 »

  1.   

    插入的数据在inserted表中,这个表结构和你要插入的表结构一样。
    像2楼写的:SELECT ID FROM inserted
      

  2.   

    替代触发器OK。不应该用AFTER触发器把
      

  3.   

    SELECT ID FROM inserted和ORACLE中的 new, old 不同, SQL SERVER中非常脑残地使用 deleted , inserted  逻辑表。
      

  4.   

    我也觉得,根据你的问题应该用INSTEAD OF 触发器。create trigger tr_tb
    on tb
    instead of insert
    as begin
     insert into tb(id,a,b,c)
    select a.id,a.a,a.b,a.c
    from tabtest a
    join inserted b on a.id=b.id
     end