-2

可能重复:
删除后在 SqlServer 中重置 AutoIncrement

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

我想知道是否有人知道如何获取它,以便 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
    );
4

1 回答 1

1

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

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

INSERT INTO Product (Product_Barcode, Product_Description) VALUES (SELECT MAX(Product_Barcode) + 1 FROM Product, "Any description here");
于 2012-11-27T15:13:08.210 回答