использовать текущую дату как значение по умолчанию для столбца

79

Есть ли способ установить значение столбца по умолчанию DateTime.Nowв Sql Server?

Пример:

table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null

Линия:

Insert into Event(Description) values('teste');

должен вставить строку, а значение даты должно быть текущей датой.

Dcarneiro
источник
1
Эта ссылка тоже может быть полезна - blog.sqlauthority.com/2013/05/10/…
Steam

Ответы:

108

Добавьте ограничение по умолчанию с функцией GETDATE () в качестве значения.

ALTER TABLE myTable 
  ADD CONSTRAINT CONSTRAINT_NAME
    DEFAULT GETDATE() FOR myColumn
Джейсон
источник
9
В PostgreSQL это было бы так: «изменить таблицу myTable добавить столбец mydatecol date default now ();» .. Я добавляю этот комментарий только потому, что Sql-Server не упоминается в заголовке вопроса. Может помочь пользователю PostgreSQL ...
alfonx 09
1
Это будет форма, если столбец уже существует в таблице, и у него нет ограничений для установки значения по умолчанию, если значение опущено в операторах INSERT (или при вставках CURSOR).
ТТ.
Как это написано, похоже, что отсутствует CONSTRAINTключевое слово. Должно быть ... ADD CONSTRAINT MY_CONSTRAINT_NAME ...
Фауст
1
Дает GETDATE()нам время UTC?
Zapnologica
20
CREATE TABLE Orders(
    O_Id int NOT NULL,
    OrderNo int NOT NULL,
    P_Id int,
    OrderDate date DEFAULT GETDATE() // you can set default constraints while creating the table
)
Маюреш
источник
3
Эта форма устанавливает безымянное ограничение. Лучше всего назвать ограничение:[...]OrderDate DATE CONSTRAINT DF_Orders_date DEFAULT GETDATE()[...]
TT.
5

Вы можете использовать:

Insert into Event(Description,Date) values('teste', GETDATE());

Кроме того, вы можете изменить свою таблицу, чтобы "Дата" имела значение по умолчанию "GETDATE ()".

Blazes
источник
3

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

 ALTER TABLE 
 [dbo].[Table_Name]
 ADD  CONSTRAINT [Constraint_Name] 
 DEFAULT (getdate()) FOR [Column_Name]

Изменить запрос таблицы

Alter TABLE [dbo].[Table_Name](
    [PDate] [datetime] Default GetDate())
Халид
источник
3

Я также столкнулся с этой потребностью в моем проекте базы данных. Решил поделиться своими находками здесь.

1) Невозможно создать поле NOT NULL без значения по умолчанию, когда данные уже существуют ( Могу ли я добавить ненулевой столбец без значения DEFAULT )

2) К этой теме обращались давно. Вот вопрос 2008 года ( добавьте столбец со значением по умолчанию в существующую таблицу в SQL Server )

3) Ограничение DEFAULT используется для предоставления значения по умолчанию для столбца. Значение по умолчанию будет добавлено ко всем новым записям, ЕСЛИ не указано другое значение. ( https://www.w3schools.com/sql/sql_default.asp )

4) Проект базы данных Visual Studio, который я использую для разработки, действительно хорош в создании сценариев изменений для вас. Это сценарий изменения, созданный для продвижения моей БД:

GO
PRINT N'Altering [dbo].[PROD_WHSE_ACTUAL]...';

GO
ALTER TABLE [dbo].[PROD_WHSE_ACTUAL]
    ADD [DATE] DATE DEFAULT getdate() NOT NULL;

-

Вот шаги, которые я предпринял, чтобы обновить свою базу данных с помощью Visual Studio для разработки.

1) Добавьте значение по умолчанию (Visual Studio SSDT: DB Project: конструктор таблиц) введите описание изображения здесь

2) Используйте инструмент сравнения схем для создания сценария изменения.

code already provided above

3) Просмотрите данные ПЕРЕД применением изменения. введите описание изображения здесь

4) Просмотрите данные ПОСЛЕ применения изменения. введите описание изображения здесь

Шерлок
источник
1

Чтобы использовать текущую дату по умолчанию для столбца даты, вам необходимо:

1- конструктор открытого стола

2- выберите столбец

3- перейти к свойствам столбца

4- установить значение по умолчанию или привязать propriete To ( getdate () )

введите описание изображения здесь

Махер Бен Исса
источник
0

Синтаксис создания таблицы может быть таким:

Create table api_key(api_key_id INT NOT NULL IDENTITY(1,1) 
PRIMARY KEY, date_added date DEFAULT 
GetDate());

Синтаксис запроса на вставку может быть таким:

Insert into api_key values(GETDATE());
tRuEsatm
источник
0

Щелкните правой кнопкой мыши таблицу и выберите «Дизайн», затем щелкните столбец, для которого нужно установить значение по умолчанию.

Затем внизу страницы в свойствах столбца установите значение по умолчанию или привязку к: 'getdate ()'

Мохамад Реза Шахрестани
источник