Sql server SQL Server:插入标识

Sql server SQL Server:插入标识,sql-server,insert,Sql Server,Insert,我有两个表ProductSize和Product 产品表格: ProductID ProductCode ProductSizeID ProductSizeID PackperCase ItemsperCase ItemSize 产品尺寸表: ProductID ProductCode ProductSizeID ProductSizeID PackperCase ItemsperCase ItemSize 我有一个存储过程来填充这两个表,

我有两个表
ProductSize
Product

产品表格:

ProductID   ProductCode  ProductSizeID
ProductSizeID   PackperCase    ItemsperCase    ItemSize 
产品尺寸表:

ProductID   ProductCode  ProductSizeID
ProductSizeID   PackperCase    ItemsperCase    ItemSize 
我有一个存储过程来填充这两个表,但是如果不填充
Product Size
表,我就无法填充
Products
表(因为我需要
productsizeID

我如何处理这个问题


我需要显示我刚刚插入
Productsize
表中的最后一个ID的东西。存储过程一次插入一条记录,但我并不想使用
MAX()
来获取ID,因为数据库中可能会发生其他事情。

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

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

DECLARE @NewID INT = SCOPE_IDENTITY();    
然后在
产品
表的第二次插入中使用:

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

你完了

如果存储过程一次插入一条记录,为什么不能使用来获取刚才插入的值?谢谢,我使用了他的SELECT ID2=SCOPE\u IDENTITY()Print ID2