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

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

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

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

В то время как мы находимся на предмете: если я хотел включать другое поле, которое получило DateTime того, когда запись ОБНОВИЛАСЬ, как я сделаю это.

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

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

Mike

30
задан RocketGoal 17 March 2010 в 11:17
поделиться

2 ответа

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

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

41
ответ дан 27 November 2019 в 23:23
поделиться

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

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
34
ответ дан 27 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: