溫馨提示×

如何在SQL Server中使用COPY命令進行數據復制

sql
小樊
130
2024-08-28 11:39:13
欄目: 云計算

在 SQL Server 中,沒有名為 “COPY” 的命令

  1. 使用 INSERT INTO SELECT:這是最常見的方法,可以將一個表的數據復制到另一個表。例如:
INSERT INTO target_table (column1, column2, column3)
SELECT column1, column2, column3
FROM source_table;
  1. 使用 BCP 工具:BCP(Bulk Copy Program)是一個命令行實用程序,用于在 SQL Server 和數據文件之間批量復制數據。首先,需要將源表中的數據導出到文本文件或其他格式,然后將數據導入目標表。

    示例:

    • 導出數據到文本文件:

      bcp source_database.dbo.source_table out C:\data\output.txt -c -T -S source_server
      
    • 從文本文件導入數據到目標表:

      bcp target_database.dbo.target_table in C:\data\output.txt -c -T -S target_server
      
  2. 使用 BULK INSERT:BULK INSERT 語句允許您直接將數據從文件導入到 SQL Server 表中。例如:

BULK INSERT target_table
FROM 'C:\data\output.txt'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
  1. 使用鏈接服務器:如果源和目標數據庫位于不同的服務器上,可以創(chuàng)建一個鏈接服務器,并通過該鏈接服務器將數據從源服務器復制到目標服務器。例如:
-- 在目標服務器上創(chuàng)建鏈接服務器
EXEC master.dbo.sp_addlinkedserver @server = N'LinkedSourceServer', @srvproduct=N'SQL Server';
GO

-- 設置登錄憑據
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LinkedSourceServer', @useself = N'False', @locallogin = NULL, @rmtuser = N'username', @rmtpassword = N'password';
GO

-- 使用鏈接服務器復制數據
INSERT INTO target_table (column1, column2, column3)
SELECT column1, column2, column3
FROM LinkedSourceServer.source_database.dbo.source_table;

根據您的需求和場景,可以選擇最適合您的方法來在 SQL Server 中復制數據。

0