MSSQL 固定 getdate() 每个查询

问题描述

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

如果是特定的行时间有没有办法插入查询开始时间?

解决方法

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

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

DECLARE @static_date DATETIME = getdate();

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

声明@startDate日期时间;

set @startDate = getdate();

update [Orders] 设置 [OrderDate] = @startdate