Insert query firing Insert & Update trigger at the same time.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • abhi81
    New Member
    • Dec 2006
    • 3

    Insert query firing Insert & Update trigger at the same time.

    Hello All,
    I have a table on which I have created a insert,Update and a Delete trigger. All these triggers write a entry to another audit table with the unique key for each table and the timestamp.

    Insert and Update trigger work fine when i have only one of them defined.

    However when I have all the 3 triggers in place and when i try to fire a insert query on the statement. It triggers both insert and update trigger at the same time and has the same timestamp in the audit table.


    Insert trigger goes as
    CREATE TRIGGER InsRecord ON [dbo].[tableA]
    AFTER INSERT
    AS
    insert Audit(change_id ,change_table,c hange_type,date _change)
    select uniqueid, srctable,'Inser t',GetDate() from inserted

    Update trigger goes as
    CREATE TRIGGER UpdRecord ON [dbo].[tableA]
    FOR UPDATE
    AS
    insert Audit(change_id ,change_table,c hange_type,date _change)
    select uniqueid, srctable,'Updat e',GetDate() from inserted

    Delete Trigger goes as
    CREATE TRIGGER delRecord ON [dbo].[tableA]
    FOR DELETE
    AS
    insert Audit(change_id ,change_table,c hange_type,date _change)
    select uniqueid, srctable,'Delet e',GetDate() from deleted

    Note:This tableA has relations with 2 other tables on 1 field each from each table but i don't think it should matter.

    Please advise how to prevent it.
  • navamnk
    New Member
    • Jan 2007
    • 15

    #2
    CREATE TRIGGER alteredRecord ON [dbo].[tableA]
    FOR INSERT, UPDATE, DELETE
    AS
    BEGIN

    ...declare lngIns & lngDel

    SELECT lngIns=count(co l1)
    from inserted

    select lngDel=count(co l1)
    from deleted

    IF lngIns>0 and lngDel=0
    ....inserted
    else if lngIns>0 and lngDel>0
    ...updated
    else if lngIns=0 and lngDel>0
    ...deleted
    end

    END

    Comment

    Working...