SQL Server 7/2000 supports a column type of timestamp. A table can only have one timestamp column, and you cannot set its value directly. Instead, a timestamp column’s value is automatically updated whenever a record is inserted or updated.
However — and this is the part that threw me off initially — the actual value of a timestamp column is not a date, not a datetime. It has nothing to do with time at all. Instead, a timestamp column contains abinary number value. That value is incremented automatically when a record is updated. It’s best to think of it as a version or revision number.
So…when you create a timestamp column, make sure to name it something like Revision, Version, something. B/c I guarantee if you call is timestamp, you’ll confuse someone. At least initially. 🙂
If you want a datetime column (e.g. LastUpdateDate) that is automatically updated when you insert and update a row, you can give it a default value of getdate(), and add an update trigger on that table that updates the value to getdate() or something. If you hate triggers (or need to avoid them for performance reasons), I guess you could just ensure that every proc & application that modifes the record also updates your LastUpdateDate column. But I think a trigger would be simpler & safer in most cases.