2人の顧客が合併します。彼らは両方とも、独自のデータベースで私のアプリケーションを使用しています。約数週間で合併します(1つの組織になります)。したがって、すべてのデータを1つのデータベースに入れたいと考えています。
したがって、2つのデータベース構造は同一です。問題はデータにあります。たとえば、私はテーブルの場所と人を持っています(これらは50の2つのテーブルです):
データベース1:
Locations
:
Id Name Adress etc....
1 Location 1
2 Location 2
Persons
:
Id LocationId Name etc...
1 1 Alex
2 1 Peter
3 2 Lisa
データベース2:
Locations
:
Id Name Adress etc....
1 Location A
2 Location B
Persons
:
Id LocationId Name etc...
1 1 Mark
2 2 Ashley
3 1 Ben
人が場所に関連していることがわかります(列locationId
)。locationテーブルとpersonsテーブルを参照しているテーブルが他にもあることに注意してください。
データベースには独自の場所と人物が含まれていますが、IDは同じでもかまいません。場合によっては、すべてをDB2にインポートする場合、DB1の場所をID3および4でDB2に挿入する必要があります。DB1の人物は新しいID4、5、6を持ち、人物テーブルの場所も必要です。 ID4、5、6に変更する必要があります。
この問題の私の解決策は、すべてを処理するクエリを作成することですが、どこから始めればよいのかわかりません。
子へのカスケードもあるIdフィールドに番号を付け直す(クエリで)最良の方法は何ですか?データベースには、参照整合性と外部キーが含まれていません(外部キーはデータベースで定義されていません)。FKeyとカスケードの作成はオプションではありません。
SQLServer2005を使用しています。