我需要在数据库中创建父子表。我的子表已经存在很长时间了,因此它包含了很长的记录列表。我要做的是将孩子的名字复制到我的父母表中。

子表

---------------
ChildID | ChildNm
---------------
1        |A
2        |B
3        |C

Parent Table

----------------
ParentID|ParentNm|ChildNm
----------------

Query

WHILE (
        SELECT Min(ChildID)
        FROM ChildTable
        ) <
    SELECT Max(ChildID)
    FROM ChildTable

BEGIN
    --INSERT every child NAME TO my parents TABLE
END

这是最好的方法吗?

最佳答案

我看不到循环的需要,我很少这样做。

尝试这样的事情:

insert parent(ChildNm)
select distinct ChildNm from child c
where not exists (select 1 from parent where c.childNm = childNm)

select * from parent

我不确定您要作为父母的名字

*我假设您的父表看起来像这样:
create table parent(ParentID int identity(1,1), ParentNm char(1), ChildNm char(1))

10-08 00:48