У меня есть триггер, который автоматически устанавливает CreationDate и ModifiedDate из данной записи в текущее время UTC всякий раз, когда вводится значение. (CreationDate останется таким же после этого, а ModifiedDate будет обновляться при каждом обновлении через другой триггер).
Я хочу убедиться, что вставляемые и никогда обновленные элементы будут иметь точно такое же значение для CreationDate и ModifiedDate, поэтому я использовал переменную вроде этого:
DECLARE @currentTime DATETIME
SELECT @currentTime = GETUTCDATE()
UPDATE dbo.MyTable SET CreationDate = @currentTime, ModifiedDate = @currentTime
...
В моем менталитете ментального программирования я предполагаю, что это предотвращает вызов GETUTCDATE()
из двух раз и потенциально дает несколько разные результаты. Это действительно необходимо? Если нет, было бы это дороже, дешевле или точно так же, как в следующем коде?
UPDATE dbo.MyTable SET CreationDate = GETUTCDATE(), ModifiedDate = GETUTCDATE()
...