Получить несколько scope_identity при вставке данных с табличным параметром - PullRequest
1 голос
/ 10 апреля 2019

Я вставляю несколько строк в Table1, используя табличный параметр.Теперь я хочу вставить идентификатор области Table1 в Table2 с некоторыми значениями.Как мне этого добиться?

1 Ответ

1 голос
/ 10 апреля 2019

Вы можете использовать для этого предложение Предложение , давайте рассмотрим пример

предположим, что ваш Table1 выглядит так

Table1(Table1_ID int identity, Name varchar(100), Email varchar(100), ...)

Теперь давайте вставим и перехватим все новые идентификаторы и имена:

declare @OutputTbl table (ID INT, Name varchar(100))

insert into Table1(Name, Email)
output inserted.Table1_ID, inserted.Name into @OutputTbl(ID, Name)
VALUES ('john doe', 'john@somewhere.com'), 
       ('Anna', 'Anna@1com')

select * from @OutputTbl

результат в @OutputTbl будет

ID  Name    
--  --------    
18  john doe    
19  Anna    

Теперь вы можете, конечно, вставлять все строки из @OutputTbl в другую таблицу, если хотите

insert into Table2 (Table1_ID, Name) 
select ID, Name
from   @OutputTbl
...