我表数据:
PID    NAME
1
2
3
4
5       之后删除了5后,再插入数据,就会从6开始,,,怎么令到它从5重新开始过?

解决方案 »

  1.   

    查询时候处理吧
    2000用子查询
    2005及以上用row_number
      

  2.   

    你用max(id)判断吧 写触发器
      

  3.   

    用自增列做不到,得用 select isnull(max(pid),0) + 1 from tb
      

  4.   


    --生成测试数据
    CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
    GOINSERT INTO products (product) VALUES ('screwdriver')
    INSERT INTO products (product) VALUES ('hammer')
    INSERT INTO products (product) VALUES ('saw')
    INSERT INTO products (product) VALUES ('like')
    INSERT INTO products (product) VALUES ('saw')
    INSERT INTO products (product) VALUES ('where')
    INSERT INTO products (product) VALUES ('shovel')
    GODELETE products 
    WHERE product = 'saw'
    GOSET IDENTITY_INSERT products ON
    GOINSERT INTO products (id, product) VALUES(3, 'garden shovel')
    GOSELECT * 
    FROM products
    GODROP TABLE products
    id          product
    ----------- ----------------------------------------
    1           screwdriver
    2           hammer
    3           garden shovel
    4           like
    6           where
    7           shovel(6 行受影响)这样的方式只能在插入的时候指明你的主键值了,比如上边插入3的时候,id为5的依然没有,必须得insert
      

  5.   

    DBCC CHECKIDENT(表名, RESEED, 4) 
      

  6.   

    我碰到过 误删了数据(非常时期非常办法)
    1: 取消 字段PID 的自动标识
    2: 手动添加删掉的5条数据(PID手动添加)
    3. 设置 字段PID 自动增长
    ok 了