Wednesday, 18 September 2024

triggers in sql for update and insert

 CREATE TRIGGER tr_tbl_EmpCompetencies

ON [dbo].[tbl_EmpCompetencies]

AFTER  UPDATE, DELETE

AS

BEGIN

    IF EXISTS (SELECT 1 FROM DELETED) AND NOT EXISTS (SELECT 1 FROM INSERTED)

    BEGIN

        INSERT INTO [History].[tbl_EmpCompetencies] (

            [Action],  [ID], [LC_ID], [AppraisalID], [AppraisalTypeID], [EmpNumber], 

            [EmpRating], [EmpComment], [MgrRating], [MgrComment], [ApprovalStatusID], 

            [ApproverID], [ModifiedBy], [ModifiedDate], [IsActive])

        SELECT 

            'DELETE', [ID], [LC_ID], [AppraisalID], [AppraisalTypeID], [EmpNumber], 

            [EmpRating], [EmpComment], [MgrRating], [MgrComment], [ApprovalStatusID], 

            [ApproverID], [ModifiedBy], [ModifiedDate], [IsActive]

        FROM DELETED;

    END


    -- Handle UPDATE action (log only the updated/new data)

    IF EXISTS (SELECT 1 FROM INSERTED) AND EXISTS (SELECT 1 FROM DELETED)

    BEGIN

        INSERT INTO [History].[tbl_EmpCompetencies] (

            [Action],  [ID], [LC_ID], [AppraisalID], [AppraisalTypeID], [EmpNumber], 

            [EmpRating], [EmpComment], [MgrRating], [MgrComment], [ApprovalStatusID], 

            [ApproverID], [ModifiedBy], [ModifiedDate], [IsActive])

        SELECT 

            'UPDATE',  [ID], [LC_ID], [AppraisalID], [AppraisalTypeID], [EmpNumber], 

            [EmpRating], [EmpComment], [MgrRating], [MgrComment], [ApprovalStatusID], 

            [ApproverID], [ModifiedBy], [ModifiedDate], [IsActive]

        FROM INSERTED;

    END

END;

No comments:

Post a Comment

Best UI