这样建表插入记录删除一条记录再插入两条记录这时自动添加的记录的id列不是从第3开始,这也是我要问的问题,这样
id int identity(1,1) 这样建表的列,在删除一条记录后,应如何自动恢复
其顺序或者说如何让其自动去判断添加的id 是多少??
本人想是不是用触发器去解决,可是这样的列不让去编辑,无奈,束手无策,望各位高手给予解决!!

解决方案 »

  1.   

    自增列可以不处理  在查询的时候再出来
    非要处理的话 这样
    --创建测试表
    CREATE TABLE t1(ID int IDENTITY,A int)
    GO
    --插入记录
    INSERT t1 VALUES(1)
    GO--1. 将IDENTITY(标识)列变为普通列
    ALTER TABLE t1 ADD ID_temp int
    GOUPDATE t1 SET ID_temp=ID
    ALTER TABLE t1 DROP COLUMN ID
    EXEC sp_rename N't1.ID_temp',N'ID',N'COLUMN'
    INSERT t1 VALUES(100,9)
    GO--2. 将普通列变为标识列
    CREATE TABLE t1_temp(ID int,A int IDENTITY)
    SET IDENTITY_INSERT t1_temp ON
    INSERT t1_temp(ID,A) SELECT * FROM t1
    SET IDENTITY_INSERT t1_temp OFF
    DROP TABLE T1
    GOEXEC sp_rename N't1_temp',N't1'
    INSERT t1 VALUES(109999)
    GO--显示处理结果
    SELECT * FROM t1
    /*--结果:
    ID          A 
    ----------------- ----------- 
    1           1
    100         9
    109999      10
    --*/