如何将所有记录仅插入表中一次

时间:2010-04-28 04:45:55

标签: c# .net

我想从table1&中获取所有记录将它们插入table2。表1和表1 table2在不同的数据库中,table1和table2是相同的结构。

通常,我将从table1获取所有记录,并且对于每个记录(foreach),我将使用“INSERT ...”将其插入到table2中。我想知道一种效果方法,只需一次将所有记录插入表中,而不是foreach。

我使用C#,.NET 2.0& WinForm的。

感谢。

3 个答案:

答案 0 :(得分:4)

在SQL代码中,您可以在INSERT中执行SELECT

INSERT INTO Table2 
(Id, Name, IsActive) 
SELECT Id, Name, IsActive 
FROM Table2

或者,如果您正在使用Code,那么请查看SqlBulkCopy

            sqlConn.Open();
            using (var bulkCopy = new SqlBulkCopy(sqlConn))
            {
                bulkCopy.DestinationTableName = "Table2";
                bulkCopy.WriteToServer(dataTable);
            }
            sqlConn.Close();

答案 1 :(得分:0)

如果两个数据库都托管在同一个Microsoft SQL Server上,那么您可以进行跨数据库选择以复制数据而无需太多代码......

insert into database1.dbo.table1
select *
from database2.dbo.table2

权限是棘手的......

答案 2 :(得分:0)

两个数据库可以相互通信吗?在这种情况下,忘记C#,并创建一个如下所示的查询:

use db2

SET IDENTITY_INSERT Table2 ON

INSERT INTO Table2
    SELECT * FROM db1.dbo.Table1

SET IDENTITY_INSERT Table2 OFF
相关问题