SQL:将记录从子表复制到父表,同时设置外键

时间:2010-03-12 14:11:50

标签: sql

我在两个表之间有一对多的关系(分别是Product和PLProduct)。 这是通过与Product.Id相关的外键PLProduct.ParentProductId完成的。

问题是:如何将PLProduct中的记录复制(孤立)到Product表,同时设置外键?

1 个答案:

答案 0 :(得分: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,没有任何有趣的技巧(不过想看看还有什么。)