7

谁能建议如何从.xlsx文件中批量插入?

我已经尝试了以下查询:

BULK INSERT #EVB FROM 'C:\Users\summer\Desktop\Sample\premise.xlsx' 
WITH (FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n', FIRSTROW = 2);

SELECT * FROM #EVB

我也尝试过FIELDTERMINATOR like "**\t**", "**,**", "**;**", "**|**",但这也不起作用。

不幸的是,没有错误消息。

4

4 回答 4

28

您可以将 xlsx 文件保存为制表符分隔的文本文件并执行

BULK INSERT TableName
        FROM 'C:\SomeDirectory\my table.txt'
            WITH
    (
                FIELDTERMINATOR = '\t',
                ROWTERMINATOR = '\n'
    )
GO
于 2012-10-29T15:34:12.460 回答
2

You need to use OPENROWSET

Check this question: import-excel-spreadsheet-columns-into-sql-server-database

于 2012-10-29T15:42:02.270 回答
1

为您的文档创建链接服务器

http://www.excel-sql-server.com/excel-import-to-sql-server-using-linked-servers.htm

然后使用普通的 INSERT 或 SELECT INTO。如果您想变得花哨,可以使用 ADO.NET 的 SqlBulkCopy,它几乎可以获取任何可以从中获取 DataReader 的数据源,并且插入速度非常快,尽管数据的读取速度不会特别快。

您还可以花时间将 Excel 电子表格转换为文本分隔文件或其他bcp 支持的格式,然后使用 BCP。

于 2012-10-29T15:39:51.210 回答
-1

它可以使用SQL Server 导入和导出向导来完成。但是,如果您熟悉 SSIS 并且不想运行 SQL Server 导入和导出向导,请创建一个在数据流中使用 Excel 源和 SQL Server 目标的 SSIS 包。

于 2017-07-05T13:05:33.693 回答