Ответ 1
Вы можете либо иметь вновь вставленный идентификатор, который выводится на консоль SSMS, например:
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Вы можете использовать это также, например. С#, когда вам нужно вернуть идентификатор к вашему вызывающему приложению - просто выполните SQL-запрос с .ExecuteScalar()
(вместо .ExecuteNonQuery()
), чтобы прочитать результирующий ID
назад.
Или, если вам нужно захватить вновь вставленный ID
внутри T-SQL (например, для последующей дальнейшей обработки), вам нужно создать переменную таблицы:
DECLARE @OutputTbl TABLE (ID INT)
INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')
Таким образом, вы можете поместить несколько значений в @OutputTbl
и выполнить дальнейшую обработку. Вы также можете использовать "регулярную" временную таблицу (#temp
) или даже "настоящую" постоянную таблицу в качестве "конечной цели" здесь.