我有一个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是一种经过验证的基本和快速加载方法.
| 归档时间: |
|
| 查看次数: |
30999 次 |
| 最近记录: |