データベースにいくつかの変更を加えたので、古いデータを新しいテーブルに移行する必要があります。そのためには、元のテーブル (Practice) からデータを取得してテーブル (ReportOptions) に入力し、2 つ目の中間テーブル (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...)
Practice から ReportOptions に移動するために必要なすべてのデータを取得するクエリを作成しましたが、中間テーブルを埋めるのに問題があります
--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
OUTPUT 句の宛先テーブルにないフィールドを参照できれば、それは素晴らしいことです (できないと思いますが、確かなことはわかりません)。私のニーズを達成する方法についてのアイデアはありますか?