CREATE TABLE MyTable (MyPK INT PRIMARY KEY ,othercolumn VARCHAR(10) ,deleterecord CHAR(1) DEFAULT('0') CHECK (deleterecord IN ('0', '1')) ,deletereason VARCHAR(200) DEFAULT(NULL))GOCREATE TRIGGER MyTable_delete ON MyTableINSTEAD OF UPDATE, DELETEAS BEGIN UPDATE t SET deleterecord = i.deleterecord ,deletereason = i.deletereason ,othercolumn = i.othercolumn FROM MyTable t INNER JOIN INSERTED i ON t.MyPK = i.MyPK WHERE (i.deleterecord = '1' AND i.deletereason IS NOT NULL) or i.deleterecord = '0'ENDGOINSERT INTO MyTable (MyPK)SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3SELECT * FROM MyTableDELETE FROM MyTable WHERE MyPK = 1UPDATE MyTable SET othercolumn = 'EXAMPLE' WHERE MyPK = 1UPDATE MyTable SET deleterecord = '1' WHERE MyPK = 2UPDATE MyTable SET deleterecord = '1', deletereason = 'MY CHOICE' WHERE MyPK = 3SELECT * FROM MyTableDROP TRIGGER MyTable_deleteDROP TABLE MyTable