将excel工作表转换为sql脚本

use*_*867 9 sql excel

我有一个excel工作表(.xls).我需要将其转换为sql脚本.单个Excel工作表由多个表组成.因此,生成的脚本应该有多个create table和insert语句.我尝试了各种工具,如http://www.sqlconverter.com/,但我无法得到正确的解决方案.我可以做任何其他方式吗?

Vin*_*nie 11

我注意到你的评论是使用导入向导比你想要的解决方案更复杂,所以你必须尝试加载数据.

你可以尝试BULK INSERT:

首先,在每张工作表上执行SAVE AS并将其转换为CSV文件.您要为每个要导入的工作表创建一个CSV文件.

接下来,创建一个具有相似数据类型和长度的表格.典型的Excel单元格是VARCHAR(255),如果你想要特定的话,可能更像NVARCHAR(255),但我们会避免使用此解决方案的unicode).

因此,如果您的Excel工作表有5列:

CREATE TABLE Sheet1
(Column1 VARCHAR(255)
, Column2 VARCHAR(255)
, Column3 VARCHAR(255)
, Column4 VARCHAR(255)
, Column5 VARCHAR(255)
)
Run Code Online (Sandbox Code Playgroud)

然后,您可以将一个简单的批量插入写入表PROVIDED,您拥有网络共享上的文件或本地到SQL实例所在的服务器/机器.例如,如果您的计算机上有该文件,并且想要尝试将其推送到网络上的服务器,则SQL会认为C:\下面的脚本中的文件位于服务器而不是您的计算机上.您必须共享一个文件夹并通过网络访问它:\\MyMachineName\SharedFolder\Sheet1.csv

BULK INSERT dbo.Sheet1
FROM 'C:\LocalFolder\WhereTheFileIs\Sheet1.csv'
WITH (
FIELDTERMINATOR = ','
, ROWTERMINATOR = '\n'
)
Run Code Online (Sandbox Code Playgroud)

如果文件和表中存在相同数量的列,则应将数据放入该表中.

它不漂亮,但很简单.这BULK INSERT是一种经过验证的基本和快速加载方法.