不要按顺序,我试了一下,总是按顺序啊sql 2008

解决方案 »

  1.   

    SET ROWCOUNT 2
    UPDATE ....
    SET ROWCOUNT 0
      

  2.   

    ;WITH Liang AS
    (
        SELECT TOP(2) *
        FROM tb
        ORDER BY NEWID()
    )
    UPDATE Liang SET
        col = xx
      

  3.   

    ;WITH Liang AS
    (
        SELECT TOP(2) *
        FROM tb
        WHERE xx = xx
        ORDER BY NEWID()
    )
    UPDATE Liang SET
        col = xx
      

  4.   

    sql server的UPDATE不能指定ORDER BY.
    所以用CTE取巧一下.
      

  5.   

    select top 5* from T_Users order by newid()
      

  6.   


    自己试试不就知道了吗??
    DECLARE @t TABLE(ID INT,col INT)
    INSERT @t SELECT 1,20
    UNION ALL SELECT 2,10
    UNION ALL SELECT 3,25
    UNION ALL SELECT 4,50
    UNION ALL SELECT 5,10
    UNION ALL SELECT 6,20
    UNION ALL SELECT 7,30;WITH Liang AS
    (
        SELECT TOP(2) *
        FROM @t
        WHERE col > 10
        ORDER BY NEWID()
    )
    UPDATE Liang SET
        col = 5000;
        
    SELECT * FROM @t;
      

  7.   

    谢谢,测试通过,为什么update top 就不能加这个参数呢