问题描述
如果我需要用当前日期更新几百万行,并用值 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