none
如何用ROW_NUMBER() 更新数据库中的值 RRS feed

  • 问题

  • sqlserver 2005中,用:

    update TestTable
    set orderid = ROW_NUMBER() OVER(ORDER BY orderid asc)

    出现错误提示:消息 4108,级别 15,状态 1,第 6 行
    窗口函数只能出现在 SELECT 或 ORDER BY 子句中。

    请问如何用ROW_NUMBER() 更新数据库中的指定字段值?

     

    2010年7月1日 8:46

答案

全部回复

  • 我想达到的目标是:排依据某字段排序查出一系列记录,然后用一个顺序号更新这个排序字段,因为数据量比较大,所以此过程越快越好.

    目前想到的就是上面写的那种语句,但是不能调试通过,请问应如何处理?用存贮过程,用视图都可以,唯一的要求就是速度要快.

    2010年7月1日 8:56
  • --利用CTE 
    ;with cte as
    (
    	select *,rn=ROW_NUMBER() OVER(ORDER BY orderid asc)
    	from TestTable 
    )
    update cte 
    set orderid = rn 
    2010年7月1日 11:04