数据库表复制

时间:2010-04-29 20:21:01

标签: sql-server-2008

我正在尝试使用包含需要保存的数据的表来纠正以前的数据库创建。由于某些表仍然可以重用,我不需要重新创建一个全新的数据库,而是需要将存在的表拆分为2个新表。现在我试图将数据插入到2个新表中,并且由于旧表中的重复数据,我很难做到这一点。

旧表结构:

ClientProjects   clientId PK
                 clientName 
                 clientProj
                 hashkey    MD5 (clientname and clientProj)

新表结构:

client           clientId PK
                 clientName

projects         queryId   PK
                 clientId  PK
                 projectName 

我希望这是有道理的。问题是在旧表中,例如,您有多个clientId的客户端。

1 个答案:

答案 0 :(得分:1)

假设您的客户名称是唯一的,您可以执行以下操作:

INSERT client (clientId, clientName)
    SELECT MAX(clientID), clientName FROM oldTable GROUP BY clientName;

INSERT project (clientId, projectName)
    SELECT n.clientId, o.projectName from client n
        INNER JOIN oldTable o on o.clientName = n.clientName;