update 表 set 字段 = rand()  

解决方案 »

  1.   

    RAND
    返回 0 到1 之间的随机float 值。
      

  2.   

    RAND
    返回 0 到1 之间的随机float 值。
      

  3.   

    用RAND()函数加 DATEPART(), GETDATE()insert youtab (a1,a2,a3) 
    value (111,222,RAND((DATEPART(mm, GETDATE()) * 100000)
               + (DATEPART(ss, GETDATE()) * 1000 )
               + DATEPART(ms, GETDATE()) 
      

  4.   

    RAND()是伪随机函数,直接调用得出的结果是一样的,必须给出一个时间种子才可以更加接近真随机数
      

  5.   

    RAND 函数是伪随机的数字生成器,它用与 C 运行时库 rand 函数类似的方法进行操作。如果没有提供种子值,系统将生成它自己的不定种子值。如果用种子值调用 RAND,则必须使用不定的种子值来生成随机数。如果用同一种子值多次调用 RAND,它将返回相同的生成值。下面的脚本中,对 RAND 的调用都返回相同的值,这是因为它们都使用了相同的种子值:SELECT RAND(159784)
    SELECT RAND(159784)
    SELECT RAND(159784)通常用 RAND 生成随机数的方法是,用相对不定的某个值作为种子值,例如累加 GETDATE 的几个部分:SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
               + (DATEPART(ss, GETDATE()) * 1000 )
               + DATEPART(ms, GETDATE()) )使用基于 GETDATE 的算法生成种子值时,如果在算法中所用的最小 datepart 的时间间隔内多次调用 RAND,RAND 仍会生成重复值。如果对 RAND 的调用包括在单个批处理中,尤其可能出现这种情况。在单个批处理中对 RAND 的多次调用可在同一毫秒(DATEPART 的最小增量)内执行。这种情况下,请用基于除时间之外的值以生成种子值。