我有一个SELECT语句,它使用GETDATE()两个不同的列值.我想知道,根据事物的性质,同一个SELECT中的两个单独的函数调用每次都会返回相同的值吗?
我有一个触发器,无论何时输入值,它都会自动将给定条目的CreationDate和ModifiedDate设置为当前UTC时间.(之后CreationDate将保持不变,而ModifiedDate将通过另一个触发器在每次更新时更新).
我想确保插入且永不更新的项目对于CreationDate和ModifiedDate具有完全相同的值,所以我使用了这样的变量:
DECLARE @currentTime DATETIME
SELECT @currentTime = GETUTCDATE()
UPDATE dbo.MyTable SET CreationDate = @currentTime, ModifiedDate = @currentTime
...
Run Code Online (Sandbox Code Playgroud)
在我的命令式编程心态中,我假设这可以防止GETUTCDATE()被调用两次,并可能产生稍微不同的结果.这实际上是必要的吗?如果没有,这将是更昂贵,更便宜,或与以下代码完全相同?
UPDATE dbo.MyTable SET CreationDate = GETUTCDATE(), ModifiedDate = GETUTCDATE()
...
Run Code Online (Sandbox Code Playgroud)