Как скопировать строку и вернуть старый и новый первичный ключ? - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь вставить строку в таблицу, которая автоматически увеличивает и устанавливает первичный ключ (objectId) и возвращает таблицу, содержащую сопоставление между старыми и новыми объектами, содержащимися в ТВП.

declare @p3 dbo.Object_tvp
insert into @p3 values(objectId,1111111,1,11111)
insert into @p3 values(objectId,2222222,2,22222)
insert into @p3 values(objectId,3333333,3,33333)


select objectId, ___, ___, ___
into #output
from @p3;

select * 
from #output

Эта таблица создана для того, чтобы содержать отношения, которые должны быть возвращены.

create table #relationship
(
    [objectId] [bigint] NOT NULL,
    [oldObjectId] [bigint] NULL
)

insert into Object_tbl (#output.___, #output.___, #output.___)
output inserted.objectId, #output.objectId into #relationship // inserted has the new object Id and #output has the old one
select * from #output

После того, как строки из твп вставлены в Object_tbl, я хотел бы получить вновь сгенерированные идентификаторы из inserted.objectId и присоединиться к нему.со старым внутри #relationship.

Пожалуйста, дайте мне знать, что я должен сделать, чтобы это исправить, или, если есть лучший подход.

...