2010-03-12 67 views
1

我在兩個表(分別爲Product和PLProduct)之間具有一對多關係。 這是通過與Product.Id相關的外鍵PLProduct.ParentProductId完成的。SQL:將子表中的記錄複製到父表中,同時設置外鍵

問題是:如何將PLProduct中的記錄複製到產品表中,同時設置外鍵?

+0

應該孤立'PLProduct'記錄成爲自己的父母在'Product'表?如果不是,你需要提供更多的信息。 – 2010-03-12 14:14:20

+0

謝謝! 想要的結果:在產品(父)表中記錄,在PLProduct(子)錶鏈接中記錄。 實際上,外鍵在開始時是空白的。 這有幫助嗎? – Egor 2010-03-12 14:19:00

+0

最後一個澄清:你想爲你的孤兒提供一份單親記錄嗎,還是每個孤兒應該得到自己的父母?謝謝。 – LesterDove 2010-03-12 14:34:14

回答

0

這兩個簡單的SQL語句應該這樣做。這假定您的CHILD表具有適當的PK,因爲我們將利用該唯一性來創建父記錄。

--INSERT a parent record with a name containing the child ID 
INSERT INTO Parent1 
SELECT 'Child_' + CAST(ID as varchar) FROM Child1 WHERE ParentID IS NULL 

--UPDATE the child table from a join to the parent table on the name field 
UPDATE Child1 
SET Child1.ParentID = Parent1.ID 
FROM 
Child1 
JOIN Parent1 ON 'Child_' + CAST(Child1.ID as varchar) = Parent1.ParentName 

我使用SQL2000,缺乏任何有趣的技巧(想看看還有什麼輪番上漲,雖然)。

+0

謝謝,這是一個解決方案! 但也許有一個更短的方式來做到這一點,任務看起來相當簡單。 – Egor 2010-03-12 17:34:44

相關問題