在做包的时候,用了look up控件,对数据源进行分类,新增数据要实现插入,但是数据源里面缺少一列number,并且在目的表里面是unique key。目的表不是空表。现在我想实现生成这样一列number,从数据库中number的最大值递增,每行增一。所以想生成行号后加上最大值做为number.找到一个生成行号的控件但是无法使用。请问有人有更好的办法吗?

解决方案 »

  1.   

    sql server的话直接用 row_number()over就可以了
      

  2.   

    我建议用语句.
    --sql 2000
    select px = (select count(1) from tb where col < t.col) + 1 from tb t--sql 2005
    select px = row_number() over(order by col) from tb
      

  3.   

    SELECT ROW_NUMBER()OVER((SELECT 1)) AS row,* FROM table1 --這樣用不改變表順序
      

  4.   


    我前面的数据是整合起来的,有几个表数据通过join连起来的,中间还有条件,过滤掉一些。如果直接写到源语句,可能会出现重复的行号。