自动增量始终向上一行添加1,即使已删除上一行

时间:2012-11-27 15:07:58

标签: sql sql-server-2008 auto-increment identity-column

  

可能重复:
  Reset AutoIncrement in SqlServer after Delete

我在Sql Server 2008数据库中遇到一个烦人的身份自动增量列值问题。当我从表中删除一行(或删除所有行)时,当我添加一个新条目时,无论该记录是否仍然存在,它都会从插入到先前记录中的任何值递增。

我想知道是否有人知道如何获取它,以便IDENTITY列将从以前的EXISTS记录中自动增加。

我的代码如下所示:

    CREATE TABLE Product
    (
            Product_Barcode INT NOT NULL PRIMARY KEY IDENTITY,
            Product_Description VARCHAR(255),
            Product_Name VARCHAR(255),
            Product_Supplier VARCHAR(255) FOREIGN KEY REFERENCES Supplier(Supplier_Name),
            Product_Size VARCHAR(255),
            Product_Weight FLOAT
    );

1 个答案:

答案 0 :(得分:1)

通常您不希望这样,因为新记录和过去记录可以共享ID。如果你有参考约束,这可能会引起混淆。

我知道如何做的唯一方法是使用子查询插入,例如。

INSERT INTO Product (Product_Barcode, Product_Description) VALUES (SELECT MAX(Product_Barcode) + 1 FROM Product, "Any description here");