Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何从XLSX文件扩展名大容量插入?_Sql Server_Bulkinsert_Xlsx - Fatal编程技术网

Sql server 如何从XLSX文件扩展名大容量插入?

Sql server 如何从XLSX文件扩展名大容量插入?,sql-server,bulkinsert,xlsx,Sql Server,Bulkinsert,Xlsx,谁能建议如何从.xlsx文件批量插入 我已经尝试了以下查询: BULK INSERT #EVB FROM 'C:\Users\summer\Desktop\Sample\premise.xlsx' WITH (FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n', FIRSTROW = 2); SELECT * FROM #EVB 我还尝试使用字段终止符,如“***\t**”、“***”、“***”、“***”、“***”、“***\124;**”,但这

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

我已经尝试了以下查询:

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

SELECT * FROM #EVB
我还尝试使用
字段终止符,如“***\t**”、“***”、“***”、“***”、“***”、“***\124;**”
,但这也不起作用


很遗憾,没有错误消息。

您可以将xlsx文件保存为以制表符分隔的文本文件,然后执行以下操作

BULK INSERT TableName
        FROM 'C:\SomeDirectory\my table.txt'
            WITH
    (
                FIELDTERMINATOR = '\t',
                ROWTERMINATOR = '\n'
    )
GO

创建链接到文档的服务器

然后使用普通插入或选择插入。如果您想玩得开心,可以使用ADO.NET的SqlBulkCopy,它几乎可以从任何数据源获取数据读取器,并且插入时非常快,尽管数据的读取速度并不快


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

您需要使用
OPENROWSET


检查此问题:

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

为什么要批量插入到临时表中?xlsx是压缩xml,不能从中插入。您试图将其视为csv文件,但它几乎肯定不是。这非常有用。Excel导出的实际txt文件中的行终止符以CRLF终止。我尝试了RowTerminator=“\r\n”,但多次无法将其导入。使用\n解决了该问题。我知道这是一个老建议,但谢谢你!它仍然是最新的。