【问题标题】:Bulk insert in SQL Server database from one table to another在 SQL Server 数据库中从一个表批量插入到另一个表
【发布时间】:2015-04-25 13:44:27
【问题描述】:

我在一个表中有 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

【问题讨论】:

  • 文件路径实际上是有意义的。带有表的数据库必须存储在磁盘上的某个位置。它不是一个空结构。有很多在线教程可以复制表格或只是其中的一部分。

标签: sql sql-server tsql sql-server-2012


【解决方案1】:

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 数据库文件...”是什么意思
  • 在 BULK INSERT 命令中,有一个 FROM 'filename' 子句不应该有您的数据库文件的名称(正如在他的评论中考虑我所暗示的那样)。
【解决方案2】:

批量插入用于将外部数据从文件导入到 sql 表中

BULK INSERT 'tableName' From 'File Path',

如果你在sql中有将数据从一张表复制到另一张表,请使用:

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

【讨论】:

    【解决方案3】:
    insert into destinationsever.destinationdatabase.dbo.destinationtable
    select * from sourcesever.sourcedatabase.dbo.sourcetable
    

    【讨论】:

    • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票
    猜你喜欢
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2010-09-16
    • 2012-05-24
    • 2020-05-22
    • 2022-01-21
    相关资源
    最近更新 更多