問題OP rand()
だけを使用しているときに持っていた クエリごとに1回の評価によるものです 。
ドキュメントから :
以下で説明するアプローチでは、最適化が削除され、この動作が抑制されるため、rand()
行ごとに1回評価されます :
dateadd( second
, rand(cast(newid() as varbinary)) * 43200
, cast('08:00:00' as time) )
-
newid()
タイプuniqueidentifier
の一意の値を生成します ; - 値は
cast
で変換されます シードとして使用するrand([seed])
疑似ランダムfloat
を生成する関数 0から1までの値 、およびシードとして は常に一意です戻り値も一意です。