【问题标题】:Import CSV into SQL Server (including automatic table creation) [duplicate]将 CSV 导入 SQL Server(包括自动创建表)[重复]
【发布时间】:2013-03-17 07:54:06
【问题描述】:

我有几个 CSV 文件,我想将它们导入 SQL Server 数据库。我知道这是否可以通过 BULK 插入来实现,但我想要一个解决方案,以便在 CSV 文件的第一行的基础上自动创建 导入表,即列名。 p>

【问题讨论】:

  • 您需要一个程序来执行此操作吗?您可以使用 SQL Server Management Studio 导入工具。

标签: sql sql-server csv


【解决方案1】:

您可以创建一个临时表变量并将数据插入其中,然后通过从临时表中选择它来将数据插入到您的实际表中。

 declare @TableVar table 
 (
    firstCol varchar(50) NOT NULL,
    secondCol varchar(50) NOT NULL
 )

BULK INSERT @TableVar FROM 'PathToCSVFile' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
GO

INSERT INTO dbo.ExistingTable
(
    firstCol,
    secondCol
)
SELECT firstCol,
       secondCol
FROM @TableVar

GO

【讨论】:

  • 为什么不直接将其插入现有表中?
  • 我发现您需要使用临时表而不是表变量。看到这个answer
  • 无法批量插入table variable。必须是临时表或真实表。
  • 这不会自动从文件创建表,这是问题的全部重点。
  • 嗨,我们如何根据 CSV 文件中的标题将其设为动态表
【解决方案2】:

SQL Server Management Studio 提供了一个导入/导出向导工具,可以选择自动创建表。

您可以通过右键单击对象资源管理器中的数据库并选择 Tasks->Import Data...

来访问它

从那里向导应该是不言自明且易于浏览的。您选择 CSV 作为源、所需目标、配置列并运行包。

如果您需要详细的指导,网上有很多指南,这里有一个不错的: http://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/

【讨论】:

  • 此链接不包括 CSV 文件,这是问题所在。
  • @rncrtr 我可以向您保证,过程几乎相同。选择平面文件作为源而不是描述中的 excel 后的一些选项略有不同,但向导已经足够好,所以理解起来应该不成问题。
  • 我正在使用的服务器中没有平面文件选项,所以这对我来说有点死胡同。我发现有一个包含它的单独工具(导入和导出数据工具),但花了一段时间才发现这是要使用的票。谢谢。
  • 打开 MS Excel,导航到“数据”选项卡,“来自文本”选项。通过简单的设置将 csv 文件导入 Excel 工作表。另存为.xls。使用上面答案中提到的选项。陶醉在魔法中!
  • 哇,很好的答案。我从谷歌搜索到这里,只需几分钟就可以在 SQL Server 中查询我的数据。
猜你喜欢
  • 2013-12-21
  • 1970-01-01
  • 2021-02-04
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 2012-04-05
相关资源
最近更新 更多