Это лучший способ просто отслеживать изменения в строке базы данных:
ALTER TRIGGER [dbo].[trg_121s]
ON [dbo].[121s]
AFTER UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
update dbo.[121s]
set modified=getdate()
where id in
(select distinct ID from Inserted)
END
Таким образом, любое обновление строки в [121s] приведет к обновлению столбца изменено.
Это работает, но я не уверен, что это лучший способ добиться этого.
Я немного запутался в этой строке:
(select distinct ID from Inserted)
... и как он узнает, что получает правильный идентификатор строки.
Спасибо за любое подтверждение / разъяснение,
отметка
GetDate()
в запросе преследует движущуюся цель, влияет на производительность и может привести к любопытным результатам, например по мере изменения даты. Почти всегда лучше зафиксировать текущую дату / время в переменной, а затем использовать это значение по мере необходимости. Это более важно для нескольких операторов, как для хранимой процедуры. Наиболее частая причина использованияGetDate()
несколько раз - захват времени начала и окончания длительной операции. - person HABO   schedule 17.09.2012