0

我正在尝试制作一个在线购物网站的项目。我有三个表,即类别表、子类别表和产品表。在类别表中我有CategoryIDCategoryName作为两个字段。在子类别表中我有CategoryID和作为字段,在产品表中我有、Sub-CategoryID和。SubCategoryNameCategoryIDSubCategoryIDProductIDProductName

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

4

3 回答 3

0

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

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

于 2013-01-08T12:51:23.223 回答
0

我认为您为此对用户 SCOPE_IDENTITY 感到羞耻

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

于 2013-01-08T13:06:19.163 回答
0
INSERT INTO Category (....) VALUES(....)

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

INSERT INTO Subcategory(CatagoryID,....) VALUES(@id,....)
INSERT INTO Product (CategoryID,....) Values(@id,...)
于 2013-01-08T16:34:12.840 回答