використовувати поточну дату як значення за замовчуванням для стовпця


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');

слід вставити рядок, а значення Date має бути поточною датою.


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 дата за замовчуванням зараз ();" .. я лише додаю цей коментар, оскільки Sql-сервер не згадується в назві запитання. Може допомогти користувачеві PostgreSQL ...
alfonx

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 ()"


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());

0

Клацніть правою кнопкою миші на таблиці та натисніть Дизайн, а потім клацніть на стовпець, для якого потрібно встановити значення за замовчуванням.

Потім внизу сторінки у властивостях стовпця встановіть значення за замовчуванням або прив'язку до: 'getdate ()'

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.