在 SQL Server 中,没有名为 “COPY” 的命令
- 使用 INSERT INTO SELECT:这是最常见的方法,可以将一个表的数据复制到另一个表。例如:
INSERT INTO target_table (column1, column2, column3)
SELECT column1, column2, column3
FROM source_table;
-
使用 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
-
-
使用 BULK INSERT:BULK INSERT 语句允许您直接将数据从文件导入到 SQL Server 表中。例如:
BULK INSERT target_table
FROM 'C:\data\output.txt'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
- 使用链接服务器:如果源和目标数据库位于不同的服务器上,可以创建一个链接服务器,并通过该链接服务器将数据从源服务器复制到目标服务器。例如:
-- 在目标服务器上创建链接服务器
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 中复制数据。
网友留言: