update tablename set 
    r = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())),0),
    g = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())),0),
    b = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())),0)

解决方案 »

  1.   

    下面这样更好:
    update tablename set 
        r = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*100000)+DATEPART(ms,GETDATE())+1),0),
        g = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())+2),0),
        b = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())+3),0)
      

  2.   

    还是这样吧:
    update tablename set 
        r = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())+100),0),
        g = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())+200),0),
        b = ROUND(255*RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())+300),0)
      

  3.   

    ROUND(
        255*RAND(
                 (DATEPART(mm,GETDATE())*100000)
                 +
                 (DATEPART(ss,GETDATE())*1000)
                 +
                 DATEPART(ms,GETDATE())
                 +
                 100
         )
        ,0
    )呵呵,好复杂
      

  4.   


    (DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE())这个表达式是我从SQL的Online books中拷贝来的. 不过上面的语句还是会有问题.
    可能还是不能得出变化的结果, 没有试.
    要不就简单点: 
    update tablename set 
        r = ROUND(255*RAND(),0),
        g = ROUND(255*RAND(),0),
        b = ROUND(255*RAND(),0)
      

  5.   

    提醒:
    我是要一次插入多行
    用你的方法跟我以前想到的一样,只能插入一组随机值
    即如果取到的随机组是(222,58,47)的话
    所有的记录都是
    item  R  G  B
    a    222,58,47
    a    222,58,47
    a    222,58,47
    a    222,58,47
    a    222,58,47而不是我想要的多组随机值!!!
      

  6.   

    用游标太慢, 不如用临时表:如果有KEY, 比如Item字段,select item, 
           IDENTITY(int, 1, 1) AS fa,
           IDENTITY(int, 10, 1) AS fb,
           IDENTITY(int, 100, 1) AS fc
        into #temptable1
        from tablenameupdate tablename set 
        r = ROUND(255*RAND(tb.fa),0),
        g = ROUND(255*RAND(tb.fb),0),
        b = ROUND(255*RAND(tb.fc),0)
       from tablename inner join #temptable1 as tb on tablename.item = tb.item这样行不行, 我没有试.