首页 > 解决方案 > 我可以得到我刚刚插入的数据的ID吗?

问题描述

所以我想从数据库中的用户订购产品,查询如下:

INSERT INTO [dbo].[Order](UserID, To_Adress, OrderDate, TravelTime, ItemCount, Status, TotalPrice) VALUES (1, 'BIKINI BOTTOM', '20191030 15:00:00', '20191030 15:35:00', 1, 'InTheMaking', 7.50)

下订单后,我想将产品和订单之间的连接放在数据库中,但我必须得到OrderID我刚刚制作的那个。有没有办法OrderID从我刚刚下的订单中获取?

INSERT INTO [dbo].[Order_Product](OrderID, ProductID) VALUES (?[dbo].[Order].OrderID?, 12)

编辑:

好的,基本上SCOPE_IDENTITY是从我的数据库中取出它的方法,但是我如何SCOPE_IDENTITY在一秒钟内使用它,INSERT同时仍然在同一个查询中?我只需要为此进行 2 个单独的查询吗?

标签: c#sqldatabase

解决方案


尝试使用 SQLOUTPUT子句:

INSERT INTO [dbo].[Order](UserID, To_Adress, OrderDate, TravelTime, ItemCount, Status, TotalPrice)
OUTPUT inserted.ID
VALUES (1, 'BIKINI BOTTOM', '20191030 15:00:00', '20191030 15:35:00', 1, 'InTheMaking', 7.50

结合SqlCommand.ExecuteScalar()


推荐阅读