テーブル[Moulds]、[Machines]、[SpareParts]があり、それぞれ属性/列が異なります。それらをサブタイプにして、[Assets]というスーパータイプのテーブルを作成し、メンテナンススケジューリングアプリケーションでそれらすべてを一緒に参照できるようにしたいと思います。
[Assets]テーブルには、[Asset_ID]、[Asset_Type]、[Description]の列が含まれます。[Asset_ID]はIDPK、[Asset_Type]はint(Molds = 1、Machines = 2など)であり、[Description]はサブタイプテーブルから取得されます。[Asset_FK]という列を各サブタイプテーブルに外部キーとして追加します。
私の問題は、各サブタイプテーブルにすでに数百から数千行のデータが含まれていることです。既存のレコードごとにPK-FKを手動で作成するのは無理ですが、自動化に必要なSQLがわかりません。
[Assets]テーブルにデータを入力するために、私は現在これを持っています:
DECLARE @AssetID TABLE (ID int)
INSERT INTO Assets (Assets.Description, Assets.Asset_Type)
OUTPUT Inserted.Asset_ID INTO @AssetID
SELECT IsNull(Moulds.Description,''), 5
FROM Moulds
しかし、同じクエリで[Moulds]のFKを更新する方法、またはこれが正しいアプローチであるかどうかはわかりません。具体的には、更新したいサブタイプの行を特定する方法がわかりません。
私の質問を要約すると、空白のスーパータイプテーブルと塗りつぶされたサブタイプテーブルがあります。サブタイプテーブルを使用してスーパータイプテーブルにデータを入力し、既存のサブタイプレコードのFK値を自動的に入力して、それらをリンクしたいと思います。SQL(MS SQL Server 2008r2)を使用してこれを行うにはどうすればよいですか?