Оригинальный ответ: getdate()
похоже на rand()
и оценивается только один раз в запросе.Этот запрос занял больше минуты, и все getdate()
одинаковы.
select getdate()
from sys.objects s1, sys.objects s2, sys.objects s3
Обновлено Но когда я посмотрел план запроса на обновление 2 разных столбцовЯ мог видеть, что вычислительный скалярный оператор дважды вызывал getdate()
.
Я тестировал на наличие обновления с rand()
CREATE TABLE #t(
[f1] [float] NULL,
[f2] [float] NULL,
)
insert into #t values (1,1)
insert into #t values (2,2)
insert into #t values (3,3)
update #t set f1=rand(),f2=rand()
select * from #t
, который дает
f1 f2
---------------------- ----------------------
0.54168308978257 0.574235819564939
0.54168308978257 0.574235819564939
0.54168308978257 0.574235819564939