Какой самый простой способ добавить информацию о автоматической версии в таблицы MSSQL? - PullRequest
0 голосов
/ 17 марта 2009

Информация должна содержать 2 столбца даты / времени (вставлены / обновлены) с точностью до мс и должна автоматически обновляться сервером всякий раз, когда кто-либо вставляет или обновляет строку.

Ответы [ 2 ]

1 голос
/ 17 марта 2009

Добавить столбцы в вашу таблицу

ALTER TABLE yourTable ADD
    Inserted datetime NULL,
    Updated datetime NULL
GO

Создайте триггер обновления и вставки для обновления столбцов

CREATE TRIGGER yourTableInsertTrigger 
   ON  yourTable
   AFTER INSERT
AS 
BEGIN
    Update yourTable Set Inserted = getdate()
    from Inserted 
    Where yourTable.Key = Inserted.Key
END
GO


CREATE TRIGGER yourTableUpdateTrigger 
   ON  yourTable
   AFTER UPDATE AS 
BEGIN
    Update yourTable Set Updated = getdate()
    from Updated
    Where yourTable.Key = Updated.Key
END
GO

Теперь, если вы хотите быть действительно чистым, вы должны убедиться, что эти два столбца не могут быть изменены / обновлены с помощью представлений вместо прямого доступа к таблице для вашего другого доступа к данным. Также, если ваши первичные ключи не согласованы, и у вас много таблиц, я бы посоветовал вам использовать CodeGeneration для создания sql. MyGeneration будет хорошо.

0 голосов
/ 23 марта 2009

Я думаю, что вставленный триггер устарел. Просто добавьте getdate () во вставленный столбец в качестве значения по умолчанию вместо нуля.

...