Я пытаюсь вставить строку в таблицу, которая автоматически увеличивает и устанавливает первичный ключ (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
.
Пожалуйста, дайте мне знать, что я должен сделать, чтобы это исправить, или, если есть лучший подход.