繁体   English   中英

使用BCP(批量插入)在不同表之间复制数据

[英]Copy data between different tables using BCP (bulk insert)

我的程序将得到两个表,例如T1(A,B,C)和T2(B,C,D)(表位于不同的SQL服务器上)。 T2有一个额外的列(D)和缺少的一列(A)。

我需要尽可能快地将行从T1复制到T2(通过使用BCP实用程序进行 probalby)。 A列应省略,D列应具有一些默认值。 我的步骤:

  1. bcp queryout-从T1中选择B,C,xxx作为D,进入临时文件
  2. bcp临时文件进入T2

我的Select语句应如何显示? 如何获取D列的默认值? 还有其他更简单的方法可以做到这一点吗?

由于您已标记C#,因此建议您使用SQLBulkCopy 这是CodeProject上的示例项目

您可以通过SQL-使用链接服务器来执行此操作。 您可以使用4点表示法来引用SQL中的表。 表示法是ServerName.DatabaseName.SchemaName.ObjectName 默认模式是dbo ,因此要引用表,语法为: ServerName.DatabaseName.dbo.TableName

您可以在Server1上运行以下内容:

INSERT INTO Server2.DBName.dbo.T2 (B, C, D)
SELECT A, B, 'Default Value' FROM Server1.DBName.dbo.T1

要将链接服务器从Server1设置为Server2,请运行以下命令:

USE master;
GO
EXEC sp_addlinkedserver 
   N'Server2',
   N'SQL Server';
GO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM