Поле даты и времени автоматического обновления SQL Server - PullRequest
1 голос
/ 21 апреля 2011

В SQL Server 2008 R2 «Я пытаюсь вставить формулу в SQL Server, которая будет обновлять текущее значение в поле LastUpdatedTimestamp до текущего значения, т.е. getdate() при каждом обновлении записи.

1 Ответ

8 голосов
/ 21 апреля 2011

В вашем поле DateTime может быть ограничение по умолчанию, которое приведет к вставке текущей даты / времени при вставке новой строки.

С этого момента вам нужно работать с триггером AFTER UPDATE, который будет обновлять ваш столбец даты / времени при каждом обновлении строки.

Вы не можете выполнить эту вторую задачу (обновить отметку даты / времени при обновлении строки), используя, как вы сказали, «формулу» - в SQL Server это просто не работает.

Вы должны предоставить триггер что-то вроде этого:

CREATE TRIGGER trgYourTableUpdateTimestamp
  ON dbo.YourTable FOR UPDATE
AS BEGIN
   UPDATE 
      dbo.YourTable 
   SET 
      YourTimeStampColumn = GETDATE()
   FROM 
      Inserted Ins
   WHERE
      dbo.YourTable.SomeUniqueId = Ins.SomeUniqueId
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...