我擁有包含不同屬性/列的表[Molds],[Machines]和[SpareParts]。我想將它們變成子類型併爲它們創建一個名爲[Assets]的超類型表,以便我可以在維護計劃應用程序中將它們全部引用到一起。爲已經包含數據的子類型表填充外鍵
[Assets]表格將只包含[Asset_ID],[Asset_Type]和[Description]列。 [Asset_ID]是身份PK,[Asset_Type]是一個int(例如Molds = 1,Machines = 2等),[Description]將從子類型表中獲取。我將爲每個子類型表添加一個名爲[Asset_FK]的列作爲外鍵。
我的問題是,每個子類型表都有數百到數千行數據已經在其中。爲每個現有記錄手動創建PK-FK將是不合理的,但我不確定將其自動化所需的SQL。
用於填充(資產)的表,我現在有這樣的:
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
但是,我不知道如何更新FK在[模具]在同一個查詢,或者如果這是連正確的做法。具體而言,我不知道如何識別我想要更新的所選子類型中的行。
總結我的問題,我有一個空白的超類型表和填充的子類型表。我想使用子類型表填充超類型表,並自動填充現有子類型記錄的FK值以鏈接它們。我如何使用SQL(MS SQL Server 2008r2)來做到這一點?
感謝您的回答。不幸的是,說明並不總是獨一無二的,所以對我的情況來說並不完全正確。其實,這確實給了我一個想法。 – NeutronFlux 2013-03-01 16:21:54