2012-06-17 4 views
1

Я работаю над базой данных SQL Azure.rowversion в SQL Azure

Я хотел бы добавить столбец rowversion в таблицу в моей базе данных, но я не могу найти тип «rowversion»!

Это тип временного штампа? если так ! Я прочитал, что временная метка устарела.

Thanks,

ответ

0

Это то же самое. Rowversion - это «более поздняя» версия. Временная метка устарела, потому что она не соответствует стандартной спецификации SQL для метки времени.

Если в вашей базе данных нет rowversion, используйте временную метку.

http://msdn.microsoft.com/en-us/library/ms182776.aspx

2

Только имя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, если вы используете редактор запросов для создания своей таблицы, а не ограничиваете себя списком, представленным вам в выпадающем меню пользовательского интерфейса.

+1

Также обратите внимание, что «Федеративные члены не поддерживают тип данных временной метки и данных rowversion». - [Руководство и ограничения федерации] (http://msdn.microsoft.com/en-us/library/windowsazure/hh597469) –

+1

@FernandoCorreia, я даже не думал о федерации. –

Смежные вопросы