The SQL server documentation says that calling the rand function with the same seed produces the same value and that the subsequent calls to rand() will produce values according to the seed first provided.
SELECT RAND(100), RAND(), RAND()
BUT, what about something like:
update dbo.product set price= rand();
This always produced the same value for all rows. What is the "academic" explanation for this behavior?