Подтвердить что ты не робот

Создание поля DateTime в базе данных автоматически?

Я собираю простую тестовую базу данных для изучения MVC. Я хочу добавить поле DateTime, чтобы показать, когда была создана CREATED.

ID = int
Name = Char
DateCreated = (dateTime, DateTime2..?)

У меня такое ощущение, что этот тип захвата DateTime можно сделать автоматически - но это все, что у меня есть, чувство. Это можно сделать? И если да, то как?

Пока мы обсуждаем тему: если бы я хотел включить другое поле, в котором была дата DateTime, когда запись была LAST UPDATED, как бы я это сделал.

Я надеюсь не делать этого вручную.

Большое спасибо

Mike

4b9b3361

Ответ 1

Вам нужно установить значение по умолчанию для поля даты getdate(). Любые записи, вставленные в таблицу, автоматически будут иметь дату ввода в качестве их значения для этого поля.

Местоположение свойства по умолчанию зависит от версии SQL Server Express, которую вы запускаете, но она должна быть видимой, если вы выберете поле даты таблицы при редактировании таблицы.

Ответ 2

Да, вот пример:

CREATE TABLE myTable ( col1 int, createdDate datetime DEFAULT(getdate()), updatedDate datetime DEFAULT(getdate()) )

Вы можете ВСТАВИТЬ в таблицу без указания столбцов createdDate и updatedDate:

INSERT INTO myTable (col1) VALUES (1)

Или используйте ключевое слово DEFAULT:

INSERT INTO myTable (col1, createdDate, updatedDate) VALUES (1, DEFAULT, DEFAULT)

Затем создайте триггер для обновления столбца updatedDate:

CREATE TRIGGER dbo.updateMyTable 
ON dbo.myTable
FOR UPDATE 
AS 
BEGIN 
    IF NOT UPDATE(updatedDate) 
        UPDATE dbo.myTable SET updatedDate=GETDATE() 
        WHERE col1 IN (SELECT col1 FROM inserted) 
END 
GO