MSSQL 固定 getdate() 每个查询

MSSQL fixed getdate() per query

如果我需要用当前日期更新几百万行,并用值 getdate() 更新它们,这是查询 运行 时间还是特定行 运行 时间?这意味着所有行都具有相同的日期还是某些行的值相差几毫秒?

如果是特定的行时间,是否可以插入查询开始时间?

如果您的批处理中有多个语句,您将从 getdate() 中获得不同的值。如果您只有一个更新,那么您将获得相同的值。

如果您有多个语句,您可以声明一个日期时间变量并为其赋值 getdate(),然后在您的后续语句中使用该变量。

DECLARE @static_date DATETIME = getdate();

UPDATE mytable SET MyDate = @static_date;
UPDATE mytable2 SET YourDate = @static_date;
...

声明@startDate 日期时间;

设置@startDate = getdate();

更新[订单]设置[OrderDate] = @startdate