关于数据库表字段自增长的问题

java程序是这样插入的ps=ct.prepareStatement("insert into bdx_wtb(wtb_wtfl,wtb_wt) values('"+arr.get(0)+"','"+arr.get(1)+"')");

程序里是不断调用函数去执行插入语句,执行结果如下:
图片说明
其中wtb_wtid字段设置自增长,每次加一

问题:为什么字段wtb_wtid在72和74会不连续,怎么解决。

补充两点:wtb_wtid字段是主键,
数据库是sqlserver2008

1、删除行,会对自增列造成不连续。

2、在已经执行了插入操作但是又被事务回滚的操作,造成自增列的不连续

  • 对于自增长,建议你直接使用数据库的自增长,而不要使用客户端计算的方式。主要原因是在并发时可能有产生重复号的可能。
  • 对于上图所示的数据,我猜想是原有73号数据,后来被删除了。具体情况要具体数据产生的过程才能知晓。
  • 对于SQL SERVER 2008 ,自增长的字段可以以下面的SQL语句为例
CREATE TABLE bdx_wtb
{
    wtb_wtid int IDENTITY(1,1) PRIMARY KEY,
    wtb_wtfl VARCHAR(255),
    wtb_wt   VARCHAR(255)
}

不建议用自增长例,可自己生成ID序号,或是用行号