CREATE TRIGGER Upd_Price ON dbo.Price FOR UPDATE AS DECLARE @dLastUpdate DATETIME SET @dLastUpdate = GETDATE() -- Set the last Update for rows updated UPDATE Price SET LastUpdate = @dLastUpdate FROM Price P JOIN Inserted I ON I.PrimaryKey = P.PrimaryKey -- Write out to the Audit Log, for rows where Price changed INSERT INTO AuditLog (TableName, PrimaryKey, LastUpdate, ColName, OldValue, NewValue, UserKey) SELECT 'PRICE' AS TableName, I.PrimaryKey, @dLastUpdate AS LastUpdate, 'Price' AS ColName, CONVERT(CHAR(20),D.Price) AS OldValue, CONVERT(CHAR(20),I.Price) AS NewValue, I.UserKey FROM Inserted I JOIN Deleted D ON D.PrimaryKey = I.PrimaryKey WHERE I.Price <> D.Price -- Now check for any changes to the description INSERT INTO AuditLog (TableName, PrimaryKey, LastUpdate, ColName, OldValue, NewValue, UserKey) SELECT 'PRICE' AS TableName, I.PrimaryKey, @dLastUpdate AS LastUpdate, 'Descr' AS ColName, D.Descr AS OldValue, I.Descr AS NewValue, I.UserKey FROM Inserted I JOIN Deleted D ON D.PrimaryKey = I.PrimaryKey WHERE I.Descr <> D.DescrNow, that's just 1 example. You might need something more elaborate (there are 3rd party tools that allow you to generate audit trail scripts, or you could generate your own from the system information schema, or from your own custom application data dictionary). But regardless, it belongs in the update trigger.