如何将一个表的自动生成的ID插入另一个表的ID中

时间:2013-01-08 12:44:27

标签: c# asp.net .net

我正在尝试制作一个在线购物网站的项目。我有三个表,即Category Table,Sub-Category Table和Products表。在类别表格中,我将CategoryIDCategoryName作为两个文件。在子类别表中,我有CategoryIDSub-CategoryIDSubCategoryName作为字段,以及在产品表中,我有CategoryIDSubCategoryIDProductIDProductName

现在在类别表中,categoryID被自动生成并设置为主键。在子类别表中,不会自动生成任何键,并且categoryID和subCategory ID都设置为组合主键。现在,当我将categoryName插入类别表时,我希望将CategoryID(自动生成)插入到SubCategory表的categoryID列和ProductTable的CategoryID列中。网上有很多内容,但没有一个能解决我的问题。

3 个答案:

答案 0 :(得分:0)

我觉得你的设计中有难闻的气味。

您的子表中不需要复合主键,因为您已经在表中定义了唯一标识符。相反,只需使用一列作为主键,并将外键关系添加到子表中。

答案 1 :(得分:0)

我认为您应该使用SCOPE_IDENTITY

SCOPE_IDENTITY返回为任何表生成的最后一个标识值。

答案 2 :(得分:0)

INSERT INTO Category (....) VALUES(....)

DECLARE @id int;
SELECT @id=SCOPE_IDENTITY();

INSERT INTO Subcategory(CatagoryID,....) VALUES(@id,....)
INSERT INTO Product (CategoryID,....) Values(@id,...)