Czy możliwe jest, aby klauzula SQL Output zwracała kolumnę, która nie jest wstawiana?

Dokonałem pewnych modyfikacji w mojej bazie danych i muszę przenieść stare dane do nowych tabel. W tym celu muszę wypełnić tabelę (ReportOptions) pobierając dane z oryginalnej tabeli (Practice) i wypełnić drugą tabelę pośrednią (PracticeReportOption).

ReportOption (ReportOptionId int PK, field1, field2...)
Practice (PracticeId int PK, field1, field2...)
PracticeReportOption (PracticeReportOptionId int PK, PracticeId int FK, ReportOptionId int FK, field1, field2...)

Zrobiłem zapytanie, aby uzyskać wszystkie dane potrzebne do przejścia z Practice do ReportOptions, ale mam problem z wypełnieniem tabeli pośredniej

--Auxiliary tables
DECLARE @ReportOption TABLE (PracticeId int /*This field is not on the actual ReportOption table*/, field1, field2...)
DECLARE @PracticeReportOption TABLE (PracticeId int, ReportOptionId int, field1, field2)

--First I get all the data I need to move
INSERT INTO @ReportOption
SELECT P.practiceId, field1, field2...
  FROM Practice P

--I insert it into the new table, but somehow I need to have the repation PracticeId / ReportOptionId
INSERT INTO ReportOption (field1, field2...)
OUTPUT @ReportOption.PracticeId, --> this is the field I don't know how to get
       inserted.ReportOptionId
  INTO @PracticeReportOption (PracticeId, ReportOptionId)
SELECT field1, field2
  FROM @ReportOption

--This would insert the relationship, If I knew how to get it!
INSERT INTO @PracticeReportOption (PracticeId, ReportOptionId)
SELECT PracticeId, ReportOptionId
  FROM @ReportOption

Gdybym mógł odwołać się do pola, które nie znajduje się w tabeli docelowej w klauzuli OUTPUT, byłoby świetnie (myślę, że nie mogę, ale nie wiem na pewno). Masz jakieś pomysły, jak osiągnąć moją potrzebę?

Z góry dziękuję.

questionAnswers(2)

yourAnswerToTheQuestion