2015-01-09 156 views
0

我有大约40多个excel文件,我想导入到SQL Server 2012.导入向导是一个很棒的工具,但它只允许我一次导入一个文件。导入多个Excel文件到SQL Server

我想避免使用SSIS,因为导入应该相对容易 - 基本上它只是一个直接复制粘贴,Excel文件中的第一行是列名,而Excel Files name = Table Name。

有没有简单的方法来实现这一目标?

编辑:由于列会改变很频繁,我想避免手动创建表。该向导非常棒,因为它会自动为我创建表格。

+0

可以使用OPENROWSET – HaveNoDisplayName 2015-01-09 20:04:21

+0

你能否解释一点点做呢?这是一个工具,功能还是软件? – 2015-01-09 20:05:42

+0

通过OpenRowSet,你将在导入过程中创建新的表格 – HaveNoDisplayName 2015-01-09 20:13:51

回答

1

你可以使用OpenRowSet。 OPENROWSET函数可以在查询的FROM子句中引用,就像它是一个表名一样。

读取Excel使用下面的SELECT语句OPENROWSET函数一起

SELECT * 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1', 
       'SELECT * FROM [Sheet1$]') 

要导入此到SQL Server表不使用DTS,因为你可以使用SELECT语句读取数据,就可以只需添加INTO子句即可将记录插入到新的SQL Server表中。

SELECT * 
INTO [dbo].[Addresses_NewTable] 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1', 
       'SELECT * FROM [Sheet1$]') 

参考文章: - http://www.sql-server-helper.com/tips/read-import-excel-file-p03.aspx

+0

我收到一条错误消息:无法创建OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”用于链接服务器“(null)”。 – 2015-01-09 20:14:02

+0

要创建访问Excel电子表格的链接服务器,必须执行sp_addlinkedserver。请按照http://technet.microsoft.com/en-us/library/ms175866(v=sql.105).aspx – HaveNoDisplayName 2015-01-09 20:16:25

+0

消息15028,级别16,状态1,过程sp_addlinkedserver,行82 服务器'EXCEL'已存在。 消息7302,级别16,状态1,行2 无法为链接服务器“(null)”创建OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的实例。 – 2015-01-09 20:21:35