【发布时间】:2011-05-17 19:43:06
【问题描述】:
我有一个触发器,只要输入一个值,它就会自动将给定条目的 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()
...
【问题讨论】:
标签: sql-server