По умолчанию getdate for Insert date

У меня есть таблица с именем sample и у нее есть столбец с именем [__INSERT_DATE], который является нулевым. Теперь я хочу изменить столбец со значением по умолчанию как getdate(). Когда я попробовал следующее, это дало мне ошибку.

ALTER TABLE sample
ALTER COLUMN [__INSERT_DATE] [datetime] DEFAULT (getdate()) NULL)

Может ли кто-нибудь сказать мне, в чем проблема?

Ответы

Ответ 1

Попробуйте следующее:

ALTER TABLE MyTable ADD CONSTRAINT
DF_MyTable_Inserted DEFAULT GETDATE() FOR INSERT_DATE
GO

Предполагает, что ваша таблица имеет имя MyTable, столбец INSERT_DATE, а имя перегиба должно быть DF_MyTable_Inserted

Ответ 2

Попробуйте следующее:

ALTER TABLE sample ADD CONSTRAINT DF_sample___INSERT_DATE DEFAULT(GETDATE()) FOR __INSERT_DATE

Ответ 3

MSDN дает следующий пример:

ALTER TABLE MyCustomers ALTER COLUMN CompanyName SET DEFAULT 'A. Datum Corporation'

Это даст вам

  ALTER TABLE sample ALTER COLUMN __INSERT_DATE SET DEFAULT GETDATE()

Ответ 4

ALTER TABLE sample ALTER COLUMN [__INSERT_DATE] [datetime] DEFAULT (getdate()) NULL)

В приведенном выше утверждении имеется слишком много закрывающих скобок. Есть 2 из них → (но 3 из них → )

Ответ 5

Получает ли getdate() верный тип данных даты и времени для объявленного столбца? В SQL Server 2008 существуют новые типы данных даты и времени.

Вот статья, в которой объясняются некоторые отличия.

http://www.sql-server-performance.com/articles/dev/datetime_2008_p1.aspx

Ответ 6

Я смог сделать это с помощью SSManagement Studio

Установка по умолчанию в SSMS - Screen Shot

сделать поле даты не нулевым, затем из свойств установите значение Defalut или Binding для getdate()