如何在SQL Server中使用COPY命令进行数据复制

avatar
作者
猴君
阅读量:0

在 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. 使用链接服务器:如果源和目标数据库位于不同的服务器上,可以创建一个链接服务器,并通过该链接服务器将数据从源服务器复制到目标服务器。例如:
-- 在目标服务器上创建链接服务器 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 中复制数据。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!