Я соединяю простую тестовую базу данных для изучения MVC с. Я хочу добавить поле DateTime для показа, когда запись была СОЗДАНА.
ID = int
Name = Char
DateCreated = (dateTime, DateTime2..?)
У меня есть чувство, что этот тип получения DateTime может быть сделан автоматически - но это - все, что я имею, чувство. Это может быть сделано? И раз так как?
В то время как мы находимся на предмете: если я хотел включать другое поле, которое получило DateTime того, когда запись ОБНОВИЛАСЬ, как я сделаю это.
Я надеюсь не сделать это вручную.
Большое спасибо
Mike
Вам необходимо установить «значение по умолчанию» для поля даты на getdate ()
. Любые записи, вставленные в таблицу, автоматически будут иметь дату вставки в качестве значения для этого поля.
Местоположение свойства «значение по умолчанию» зависит от версии SQL Server Express, которую вы используете, но оно должно быть видимым, если вы выберете поле даты в таблице при редактировании таблицы.
Да, вот пример:
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