SqlServer:可以用自动增长主键
Oracle:可以用序列

解决方案 »

  1.   

    再建立一个表 IndexRecoder
    一个字段: LatestIndex , int
    你在insert数据记录的时候,首先用一个工具类,比如说是IndexRecoder(该类有个方法是OrderIndex,用来预定ID,执行这个方法就在IndexRecorder表中的LatestIndex字段中加20,
    然后这20个id就是你的了,你可以在这20个id中任意添加记录,别人要添加记录时,也执行
    IndexRecoder.OrderIndex(),于是将在IndexRecorder表中的LastestIndex字段中再增加20,
    这20个可用id就属于他,他插入的新记录就只能是这20个id,依次类推
      

  2.   

    最简单的方式:先用update()加1,再用select取值,这样可以避免同时操作所发生的错误;
      

  3.   

    我说的方法看上去看复杂,其实也很好的, (当然你也应该使用事物), 而且用了这个方法后
    重复id的可能性大大降低,(他把重复的概率全部集中到预定id的时候去了)
    有人建议update后selectid,或者用@@Identify,其实这些方法都不能100%
    保证你取到的id就是你刚刚insert的id