簡體   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