you're assuming that inserted will always contain a single record which is not true. as such, the trigger should be likeCreate Trigger tri_AuditInsUpdon [dbo].[TextDesc]For Insert, Update,Delete AsBEGIN Insert into tbl_audits(recordid, username, auddatetime, typeofupdate) select COALESCE(i.ID,d.ID), SYSTEM_USER, getdate(), CASE WHEN i.ID IS NOT NULL AND d.ID IS NULL THEN 1--insert WHEN i.ID IS NOT NULL AND d.ID IS NOT NULL THEN 2 --Update WHEN d.ID IS NOT NULL AND i.ID IS NULL THEN 3 --DeleteEND from Inserted iFULL OUTER JOIN Deleted dON i.ID=d.ID END