SQLServer2005を使用しています。
現在のデータベース(単一のテーブル)から新しいデータベース(正規化された-多くのテーブル)にデータを移行しています。新しいデータベースには、ベーステーブル(「BaseTable」と呼びましょう)と他の複数のテーブル(と呼びましょう)"DependentA"があり"DependentB"ます。古いデータベースのデータの一部はBaseTableに送られ、一部は他の2つに送られます。BaseTableは、DependentAとDependentBの両方と1対1の関係にあり、それらのIDを外部キーとして使用します。
これが私の質問です。データをどのように移行する必要がありますか?これが私が試したクエリです。1つを除いて機能しています。他の2つのBaseTableの外部キーは同一であるか、それぞれ異なるものです。
Begin SQL:
BEGIN TRANSACTION
DECLARE @dep1Id int
DECLARE @dep2Id int
INSERT INTO DependentA (column1, column2)
SELECT c1, c2
FROM OldDatabase.OldTable
SELECT @dep1Id = Scope_Identity()
INSERT INTO DependentB (column3, column4)
SELECT c3, c4
FROM OldDatabase.OldTable
SELECT @dep2Id = Scope_Identity()
INSERT INTO BaseTable (column5, dependentTable1Id, dependentTablr2Id)
SELECT c5, @dep1Id, @dep2Id
FROM OldDatabase.OldTable
COMMIT