带有更新和2日期时间字段的sql server和getdate()

Fre*_*dou 0 t-sql sql-server-2005

要求是,两个字段必须相等,你会做什么

declare @var datetime

set @var = getdate()

update table set f1=@var,f2=@var
Run Code Online (Sandbox Code Playgroud)

或者干脆

update table set f1=getdate(),f2=getdate()
Run Code Online (Sandbox Code Playgroud)

dcp*_*dcp 5

绝对是第一种方式,因为2次调用getdate()很可能会返回不同的值.

  • @dcp,SQL2005中的行为发生了变化.现在它是一个非确定性函数,每次调用它时都可能返回不同的值. (2认同)