2011-11-23 2 views
2

У меня есть поле метки времени в таблице, и я оттащил поле в дизайнере, чтобы разрешить Nulls . Я не могу ввести ничего в поле значения по умолчанию и привязки (это greyed out и не позволяет вам вводить что-либо) Я пытаюсь выполнить все мои эксперименты sql в конструкторе запросов sql server express 2008SQLserver Timestamp пытается установить значение по умолчанию, получая нечитаемый результат

Если я вставляю новую запись в таблицу, поле timestamp дает значение это выглядит так: 0x00000000000007D7

Как видите, это совершенно нечитаемое:

Как я могу обойти это/получить читаемую метку времени там?

ответ

4

Использование DATETIME с ограничением по умолчанию GETDATE

Вы можете сделать это так:

CREATE TABLE myTable 
(
    ID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED, 
    myTimeStamp datetime NOT NULL DEFAULT GETDATE() 
) 

TIMESTAMP является бинарным полем, используемым для управления версий строк и не может быть изменен.

От BOL:

метка представляет собой тип данных, который предоставляет автоматически генерируемые двоичные числа, которые гарантированно быть уникальным в пределах базы данных. временная метка обычно используется в качестве механизма для таблицы тиснения версий строк. Размер хранилища составляет 8 байтов.

+0

Извините, что спросила, но если таблица уже существует, как мне ее изменить? – hardboiled

+0

Самый простой способ: «ALTER TABLE myTable DROP COLUMN myTimestamp», затем «ALTER TABLE myTable ADD myTimeStamp DATETIME NOT NULL DEFAULT GETDATE()» полный синтаксис и параметры здесь: http://msdn.microsoft.com/en-us /library/ms190273.aspx –

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