По умолчанию 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()