Тип данных timestamp
(устарел) или rowversion
(текущий) - единственный, о котором я знаю, который обновляется при каждой операции записи в строке.
Это не отметка времениper se - он не хранит дату, время в часах, секундах и т. д. - это действительно больше RowVersion
(отсюда и смена имени) - уникальное, постоянно увеличивающееся число (двоичное) в строке.
Обычно он используется для проверки любых изменений между временем, когда вы прочитали строку, и временем, когда вы собираетесь ее обновить.
Поскольку на самом деле это не информация о дате / времени,вам, скорее всего, понадобится еще один столбец для этой удобочитаемой информации.Вы можете добавить столбец LastModified DATETIME
в свою таблицу, а с помощью ограничения DEFAULT GETDATE()
вы можете вставить новое значение при вставке.Чтобы поддерживать это в актуальном состоянии, вам нужно написать триггер AFTER UPDATE, чтобы обновлять столбец LastModified
при любом обновлении.
SQL Server 2011 (он же «Denali») принесет нам SEQUENCES
, который идеально подошел бы для вашего случая здесь - но, увы, это «еще как минимум год от официального релиза .....