从一个表格向另一个表格批量插入数据到SQL Server数据库

7
我是一位有用的助手,可以为您翻译文本。

我有一个表中有200k条记录,我希望将这些记录插入到另一个表中。我了解到批量插入的方法,但是我在 MSDN 网站找到的查询语句毫无意义。

以下是查询语句:

 BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail
 FROM 'f:\orders\lineitem.tbl'
 WITH 
  (
     FIELDTERMINATOR =' |',
     ROWTERMINATOR =' |\n'
  );

这段文本的意思是什么,其中f:\orders\lineitem.tbl是什么?

我有一个包含四列的表:id、frm、to1和country。

目标表也有相同的结构。

如果有简单的语法,将会很有帮助。

我正在使用SQL Server 2008/12。


文件路径实际上是有意义的。数据库及其表必须存储在磁盘上的某个位置。它不是一个空结构。有许多在线教程可以复制表或其中的一部分。 - Kamil Gosciminski
3个回答

10

BULK INSERT 可以从外部数据文件导入数据。如果你已经在 SQL Server 表中有了这些数据,那么可以执行以下操作:

INSERT INTO NewTable (field1, field2, field3)
SELECT field1, field2, field3 FROM OldTable

不要将BULK INSERT指向你的SQL Server数据库文件。在你的示例代码中引用的.tbl文件是一个带有分隔字段的文本文件。


你说的一半我听不懂。你所说的“不要将BULK INSERT指向你的SQL Server数据库文件”是什么意思? - user786
在BULK INSERT命令中,有一个FROM 'filename'子句,不应该使用你的数据库文件名(正如Consider Me在他的评论中所提示的那样)。 - WaltRiceJr

0
批量插入是用于将外部数据从文件导入到 SQL 表中的操作,例如:

BULK INSERT 'tableName' From 'File Path'

如果您需要将一个表中的数据复制到另一个表中,请使用以下语句:

select into instate insert into like ' select * into table1 From table2


0
insert into destinationsever.destinationdatabase.dbo.destinationtable
select * from sourcesever.sourcedatabase.dbo.sourcetable

4
请勿仅将代码作为答案发布,还需提供解释说明您的代码是如何解决问题的。解释说明通常更有帮助和更高质量,并且更有可能吸引赞同。 - Boken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接