我有大约40多个excel文件,我想导入到SQL Server 2012.导入向导是一个很棒的工具,但它只允许我一次导入一个文件。导入多个Excel文件到SQL Server
我想避免使用SSIS,因为导入应该相对容易 - 基本上它只是一个直接复制粘贴,Excel文件中的第一行是列名,而Excel Files name = Table Name。
有没有简单的方法来实现这一目标?
编辑:由于列会改变很频繁,我想避免手动创建表。该向导非常棒,因为它会自动为我创建表格。
我有大约40多个excel文件,我想导入到SQL Server 2012.导入向导是一个很棒的工具,但它只允许我一次导入一个文件。导入多个Excel文件到SQL Server
我想避免使用SSIS,因为导入应该相对容易 - 基本上它只是一个直接复制粘贴,Excel文件中的第一行是列名,而Excel Files name = Table Name。
有没有简单的方法来实现这一目标?
编辑:由于列会改变很频繁,我想避免手动创建表。该向导非常棒,因为它会自动为我创建表格。
你可以使用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
我收到一条错误消息:无法创建OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”用于链接服务器“(null)”。 – 2015-01-09 20:14:02
要创建访问Excel电子表格的链接服务器,必须执行sp_addlinkedserver。请按照http://technet.microsoft.com/en-us/library/ms175866(v=sql.105).aspx – HaveNoDisplayName 2015-01-09 20:16:25
消息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
这可能是更多的研究比你希望把你的问题,但你也可能考虑使用BIML脚本进行繁琐和众多类似的包。
http://www.sqlservercentral.com/stairway/100550/ http://www.mssqltips.com/sqlservertip/3094/introduction-to-business-intelligence-markup-language-biml-for-ssis/
可以使用OPENROWSET – HaveNoDisplayName 2015-01-09 20:04:21
你能否解释一点点做呢?这是一个工具,功能还是软件? – 2015-01-09 20:05:42
通过OpenRowSet,你将在导入过程中创建新的表格 – HaveNoDisplayName 2015-01-09 20:13:51