列を持つ Customers テーブルを持つ既存の SQL Server データベースがあります。
Customers: CustomerId (PK), A, B, C, D, E, F
最後の 3 列は住所を表します。これらの住所列を別の Addresses テーブルに抽出し、FK でリンクして、同時にデータを移行したいと考えています。だから私は次のようになります:
Customers: CustomerId (PK), A, B, C, AddressId (FK)
Addresses: AddressId (PK), D, E, F
Address は最終的に他の多くのテーブルからも参照されるため、データベースで生成された独自の独立した AddressId が必要です。Customer と同じ ID を共有することはできません。また、Address に Customer への FK を含めることもできません。スキーマは次のようにする必要があります。
私はSQLにあまり精通していません。SQL で、新しい Addresses テーブルを作成し、データをコピーして、Customers から冗長な列を削除することに問題はありません。しかし、データベースで生成された AddressId を FK として Customer に戻す方法がわかりません。カーソルなどを使用したある種の手続き型アプローチに頼る必要がありますか?または、この移行全体を1つの宣言型SQLクエリで行う方法はありますか? ありがとう。
(注: 最終的には Code First Migrations 内でこれを実行できるようにしたいと考えています。)