我正在尝试制作一个在线购物网站的项目。我有三个表,即Category Table,Sub-Category Table和Products表。在类别表格中,我将CategoryID
和CategoryName
作为两个文件。在子类别表中,我有CategoryID
,Sub-CategoryID
和SubCategoryName
作为字段,以及在产品表中,我有CategoryID
,SubCategoryID
,ProductID
和ProductName
。
现在在类别表中,categoryID被自动生成并设置为主键。在子类别表中,不会自动生成任何键,并且categoryID和subCategory ID都设置为组合主键。现在,当我将categoryName插入类别表时,我希望将CategoryID(自动生成)插入到SubCategory表的categoryID列和ProductTable的CategoryID列中。网上有很多内容,但没有一个能解决我的问题。
答案 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,...)