我为了防止工程名称字段出现重复值,加了索引,设为不重复,id字段设为自动编号
在试验时我发现加入一笔数据后,id字段自动加一,但是把这笔数据删除后,id并没有减一
比如,加入第一笔数据id=1,然后删掉,再加入一笔数据 id=2拉,按道理因该为一呀另外我该如何扑捉 出现重复值的异常,方便单独处理呢?

解决方案 »

  1.   

    1、自动字段不能自减,如果要实现从1开始排必须清空该表所有记录,然后在MS Access中运行“压缩并修复数据库”。
    2、在插入记录前检查工程名称字段是否重复,是则提示用户改变工程名称。
      

  2.   

    1 自动编号是只加不减 ,只保证了表内纪录的唯一
    2 你的问题可以通过sql 语句用存储过程或者出发器解决
    insert table(id) select count(*) +1 from table
    但必须把所有的id全部update
    3 你这样的设计非常有问题!既没有实际的意义,而且在效率上非常低下,试想一下10000条纪录你删除了第一条.....
    而且你没有必要在表里面添加这样的字段,用查询就能实现这样的功能,你在名称上建主健不是已经满足记录不重复的要求了么?
      

  3.   

    1. 觉得是 Sql Server 的一个不足 ; 将这个 Id 字段删掉再重新加一次就可以了 ;2. 用
         
          Try 
          Except
            On E : Exception do
              // 可以将 E.Message 取出来看看
          end ; 捕捉异常