SQL Server:插入标识

时间:2016-04-29 08:52:13

标签: sql-server insert

我有2个表ProductSizeProduct

产品表:

ProductID   ProductCode  ProductSizeID

产品尺寸表:

ProductSizeID   PackperCase    ItemsperCase    ItemSize 

我有一个存储过程来填充这两个表,但是我不能填充Products表而不填充Product Size表(因为我需要productsizeID)。

我该如何解决这个问题?

我需要显示我刚刚插入Productsize表的最后一个ID的内容。存储过程一次插入1条记录,但我真的不想使用MAX()来获取ID,因为数据库中可能正在进行其他操作。

1 个答案:

答案 0 :(得分:2)

您需要先将行插入ProductSize并获取ID:

INSERT INTO dbo.ProductSize(PackPerCase, ItemsPerCase, ItemSize)
VALUES( ....., ....., .....);

DECLARE @NewID INT = SCOPE_IDENTITY();    

然后在第二次插入Products表中使用它:

INSERT INTO dbo.Products(ProductCode, ProductSizeID)
VALUES( ....., @NewID);

你已经完成了!