我有一个Excel工作表(.xls)。我需要将其转换为sql脚本。单个excel工作表包含多个表。因此,生成的脚本应具有多个create table和insert语句。我尝试了各种工具,例如http://www.sqlconverter.com/,但无法获得适当的解决方案。还有其他方法可以做到吗?
我注意到您的评论,即使用导入向导比您想要的解决方案更为复杂,因此您必须尝试加载数据。
您可以尝试BULK INSERT:
BULK INSERT
首先,在每张纸上进行“另存为”,然后将它们转换为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) )
然后,您可以将简单的批量插入操作写入表中,前提是该文件位于网络共享上,或者位于SQL实例所在的服务器/计算机本地。例如,如果您的计算机上有该文件,并且想尝试将其推送到网络上的服务器,则SQL会认为C:\以下脚本中的是在服务器上而不是您的计算机上。您将必须共享一个文件夹并通过网络访问它:\\MyMachineName\SharedFolder\Sheet1.csv
C:\
\\MyMachineName\SharedFolder\Sheet1.csv
BULK INSERT dbo.Sheet1 FROM 'C:\LocalFolder\WhereTheFileIs\Sheet1.csv' WITH ( FIELDTERMINATOR = ',' , ROWTERMINATOR = '\n' )
如果文件和表中存在相同数量的列,则应该将数据放入该表中。
它不漂亮,但很简单。这BULK INSERT是基本且快速加载的可靠方法。