如何将数据从服务器表复制到客户端表

时间:2015-08-03 05:58:18

标签: c# sql sql-server sql-server-2008

我想将数据从Server表复制到我的客户端表。

我现在将数据从客户端表复制到客户端表 像

INSERT INTO newTable (col1, col2, col3)
SELECT column1, column2, column3
FROM oldTable

以及我也知道如何使用SSMS使用链接服务器将数据从Server表复制到我的客户端表,但我想使用C#代码复制数据。

类似的问题:

How to copy table data from remote server to Local server in SQL Server 2008

任何想法?

编辑:

现在我正在尝试

  1. 打开远程服务器连接AS Con1
  2. SELECT column1, column2, column3 FROM oldTable
  3. Open Client连接为Con2
  4. INSERT INTO newTable (col1, col2, col3) Values (Con1.column1,Con1.column2,Con1.column3)

1 个答案:

答案 0 :(得分:1)

您可以使用SqlBulkCopy类将数据从SQL Server实例上的一个表有效地复制到另一个SQL Server实例上的另一个表中。

这里有最简单的代码:

using (var sourceConnection = new SqlConnection(SourceConnectionString))
using (var sourceCommand = new SqlCommand("SELECT * FROM SourceTable", sourceConnection))
using (var targetConnection = new SqlConnection(TargetConnectionString))
using (var bcp = new SqlBulkCopy(targetConnection, SqlBulkCopyOptions.TableLock, null)) 
{
    bcp.DestinationTableName = "TargetTable";
    sourceConnection.Open();
    targetConnection.Open();
    using (var sourceReader = sourceCommand.ExecuteReader())
    {
        bcp.WriteToServer(sourceReader);
    }
}

您可能需要设置其他SqlBulkCopyOptions,例如KeepIdentity。如果表结构不同,您可能还需要设置列映射。