如何在SQLServer2005中将相似的数据大容量复制到两个表中?

如何在SQLServer2005中将相似的数据大容量复制到两个表中?,sql,sql-server-2005,sqlbulkcopy,Sql,Sql Server 2005,Sqlbulkcopy,我“继承”了一些我很难处理的代码。应用程序具有excel导入功能,可将成员导入到成员表中,并使用SqlBulkCopy 几个月前,添加了一个连接表,为了使应用程序正常工作,还必须在那里添加members表中的两个属性。没有硬耦合没有PK,FK-不是我的选择 我不知道如何解决这个问题,因为据我所知,你不能批量复制到两个表中,你必须分别进行。但是如何以对性能影响较小的最佳方式检索新导入成员的GUID属性以及其他属性值groupId 例如: Excel导入: Name Email plus more

我“继承”了一些我很难处理的代码。应用程序具有excel导入功能,可将成员导入到成员表中,并使用SqlBulkCopy

几个月前,添加了一个连接表,为了使应用程序正常工作,还必须在那里添加members表中的两个属性。没有硬耦合没有PK,FK-不是我的选择

我不知道如何解决这个问题,因为据我所知,你不能批量复制到两个表中,你必须分别进行。但是如何以对性能影响较小的最佳方式检索新导入成员的GUID属性以及其他属性值groupId

例如:

Excel导入:

Name
Email
plus more
表1

name
personID (GUID)
groupID (same for all imported members)
+ other attributes
表2

personID (GUID)
groupID (same for all imported members)
+ other 'new' attributes
很抱歉,这次我不能提供任何代码:/真的希望有人能给我任何建议

现在还不太清楚究竟是什么以及如何将Excel导入的数据存储到这两个表中,以及groupID来自何处

基本上-你是对的-你不能批量插入到多个表中。因此,我的看法是:

1像今天一样,从Excel批量插入到临时表中

2然后插入需要存储在表1中的信息片段,并输出将表1的位连接到表2的位所需的必要信息-如下所示:

DECLARE @Connection TABLE (GroupID INT, PersonID UNIQUEIDENTIFIER, EMail VARCHAR(500))

INSERT INTO dbo.Table1 (list of columns here)
    OUTPUT Inserted.GroupID, Inserted.PersonID, Inserted.EMail 
        INTO @Connection(GroupID, PersonID, EMail)
    SELECT
       (list of columns here)
    FROM
       dbo.Staging
    WHERE 
       (possibly a condition here???)
这将把Staging中的行插入到表1中,同时,它将为插入的每一行写出一些信息——GroupID、PersonID和EMail

有了这些信息,您还应该能够将您的值插入表2中:


你说得对-你不能这么做,大容量导入只能在一个表中工作。所以基本上是这样做的:1批量导入数据到一个临时表中-就像今天一样。然后2将该表从staging表拆分为两个实际的表如何以及从何处获得GroupID???你到底在干什么?从Excel导入到表1中,然后需要从该表中获取一些数据以插入到表2中??你能试着从Excel导入的一行解释一下你到底在做什么吗??所有的步骤,所有涉及的数据。。。
INSERT INTO dbo.Table2 (GroupID, PersonID, EMail, list of other columns here)
    SELECT
       c.GroupID, c.PersonID, c.EMail,
       (list of other columns from Staging table here)
    FROM @Connection c
    INNER JOIN dbo.Staging s ON c.EMail = s.EMail   -- or use whatever you can use to 
                                                    -- connect the two sets of data
    WHERE (condition) ......