2010-03-12 69 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

相关问题