Могу ли я иметь столбец дата + время в обновлении базы данных sql server автоматически при вставке или обновлении?
Я хочу, чтобы в моих таблицах был столбец с именем ModifiedDate, который автоматически обновляется при вставке или обновлении строки. Можно ли это сделать без написания кода в клиентах C#, которые используют БД?
Скопировав аналогичный столбец в примере базы данных AdventureWorks2008R2, я попытался использовать тип данных datetime2 +, указав для столбца значение по умолчанию "(getdate())", но это не сработало для меня
Есть ли способ сделать это на уровне базы данных, поэтому я не полагаюсь на кодировщиков клиентских приложений, чтобы установить поле в своем приложении C#?
2 ответа
Как насчет использования значений по умолчанию? Во время вставки, если вы не предоставите какое-либо значение, столбец будет обновлен с предоставленным значением по умолчанию.
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)
Посмотрите документацию по SQL (копирование-вставка не сделает вас более умным) - ключевое слово, которое вы ищете, - TRIGGER. Триггер может реагировать на вставки / обновления / удаления и обновлять вставленные / обновленные данные.