Могу ли я получить идентификатор данных, которые я только что вставил? - PullRequest
0 голосов
/ 06 ноября 2019

Итак, я хочу разместить товар в заказе от пользователя в базе данных, и запрос выглядит следующим образом:

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 отдельных запроса для этого?

1 Ответ

2 голосов
/ 06 ноября 2019

Попробуйте использовать предложение SQL OUTPUT:

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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...