本帖最后由 kissemail 于 2010-04-29 14:04:31 编辑

解决方案 »

  1.   

    但问题是原程序不是我写的,没有源文件,我只可以在SQL新建一个字段,然后写一个外挂检测它更新,
    再进行编号...
    这样可以查询我想编号,但不会更新到原来的表(一定要保存到原来的表)。ADOQuery1.close;
    ADOQuery1.SQL.Text:=('SELECT Q2 = Q1+'+Chr(39)+'-'+Chr(39)+'+RIGHT(100000+ROW_NUMBER()OVER(PARTITION BY Q1 ORDER BY GETDATE()),5) FROM Q');
    ADOQuery1.open;
      

  2.   

    以BZ为例,sql语句如下:
    select isnull(max(Q2),'') as qq from Q where Q2 like 'BZ%'
    得到最大值后,再递增,将值写回数据库,用存储过程处理最好