Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 数据库表复制_Sql Server 2008 - Fatal编程技术网

Sql server 2008 数据库表复制

Sql server 2008 数据库表复制,sql-server-2008,Sql Server 2008,我正在尝试使用包含需要保存的数据的表来更正以前创建的数据库。由于某些表仍然是可重用的,因此我需要将现有的表拆分为两个新表,而不是重新创建一个全新的数据库。现在我正试图将数据插入2个新表中,由于旧表中存在重复数据,我很难做到这一点 旧表结构: ClientProjects clientId PK clientName clientProj hashkey MD5 (clientname

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

旧表结构:

ClientProjects   clientId PK
                 clientName 
                 clientProj
                 hashkey    MD5 (clientname and clientProj)
新的表格结构:

client           clientId PK
                 clientName

projects         queryId   PK
                 clientId  PK
                 projectName 

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

假设您的客户名是唯一的,您可以这样做:

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;