我在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
);
答案 0 :(得分:1)
通常您不希望这样,因为新记录和过去记录可以共享ID。如果你有参考约束,这可能会引起混淆。
我知道如何做的唯一方法是使用子查询插入,例如。
INSERT INTO Product (Product_Barcode, Product_Description) VALUES (SELECT MAX(Product_Barcode) + 1 FROM Product, "Any description here");