Только имяtimestamp
устарела, потому что это был ужасный выбор для имени, которое представляет тип rowversion
данных - так как она не имеет ничего общего с датой и временем (как это должно, если он основан на том, что указано в ANSI). Типы timestamp
и rowversion
на 100% совместимы и взаимозаменяемы.
И хотя имя устарело, вы можете продолжать его использовать. Даже в SQL Server 2012, rowversion
даже не в sys.types
, и если вы создаете таблицу с использованием rowversion
, она сохраняется в sys.columns
как timestamp
и получает сценарий как последний, если позже вы создадите скрипт таблицы.
CREATE TABLE dbo.what_the(heck ROWVERSION);
SELECT t.name
FROM sys.types AS t
INNER JOIN sys.columns AS c
ON t.system_type_id = c.system_type_id
OR t.user_type_id = c.user_type_id
WHERE
c.[object_id] = OBJECT_ID('dbo.what_the');
Результат:
name
---------
timestamp
Это немного ироничный, вы абсолютно должны использовать rowversion
и не timestamp
для будущих соображений совместимости, я просто тыкая немного развлечься, потому что еще раз Microsoft имеет «делайте, как мы говорим, не так, как мы делаем». В случае с SQL Azure вам, возможно, придется выбирать timestamp
до тех пор, пока они не выяснят это - кажется, для меня близоруким, что они будут продолжать использовать старое имя, так как оно продолжает вызывать так много путаницы. <shrug>
P.S. Где вы это видите? В веб-дизайнере таблиц SQL Azure? Я подозреваю, что вы можете использовать либо rowversion
, либо timestamp
, если вы используете редактор запросов для создания своей таблицы, а не ограничиваете себя списком, представленным вам в выпадающем меню пользовательского интерфейса.
Также обратите внимание, что «Федеративные члены не поддерживают тип данных временной метки и данных rowversion». - [Руководство и ограничения федерации] (http://msdn.microsoft.com/en-us/library/windowsazure/hh597469) –
@FernandoCorreia, я даже не думал о федерации. –