我想从table1&中获取所有记录将它们插入table2。表1和表1 table2在不同的数据库中,table1和table2是相同的结构。
通常,我将从table1获取所有记录,并且对于每个记录(foreach),我将使用“INSERT ...”将其插入到table2中。我想知道一种效果方法,只需一次将所有记录插入表中,而不是foreach。
我使用C#,.NET 2.0& WinForm的。
感谢。
答案 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