CREATE TRIGGER getdelinfo_8018 ON [dbo].[TB_8018] 
FOR INSERT, UPDATE, DELETE 
AS
INSERT INTO DELINFO(TABLENAME,TMSTAMP)
SELECT 'TB_8018',CONVERT(BIGINT,TMSTAMP)
FROM DELETED为什么修改的记录的信息也进入delinfo表了???

解决方案 »

  1.   

    Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。
    当 UPDATE 时 Deleted 表记录的是更新前的数据CREATE TRIGGER getdelinfo_8018 ON [dbo].[TB_8018]  
    FOR DELETE  
    AS 
    INSERT INTO DELINFO(TABLENAME,TMSTAMP) 
    SELECT  'TB_8018 ',CONVERT(BIGINT,TMSTAMP) 
    FROM DELETED 
      

  2.   

    那有没有可能做到把update的数据排除掉呢?
      

  3.   

    UPDATE的原理是先DELETE 再INSERT  所以如果需要从INSERTED里面取数据的话   UPDATE是没办法排除在外的