我使用Excel收集配置数据&,然后将其导入到SQL Server 2012中进行存储。将Excel 2010导入到SQL Server中
到目前为止,我一直在使用SQL Server导入&导出向导,但不断手动设置它是一件痛苦的事情。由于我使用的是Express,当然它不允许我保存甚至查看传输数据的实际命令。
我试图建立一个链接的服务器,每How to use Excel with SQL Server linked servers and distributed queries,但出现以下错误:
The linked server has been created but failed a connection test. Do you want to keep the linked server?
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "FLTST".
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "FLTST" returned message "Unspecified error". (Microsoft SQL Server, Error: 7303)
我想也许Excel版本号是问题,因为网页是从2005年的,所以我与尝试:
- Excel作为所示的页面
- 的Excel 12.0(Excel 2007中),这是精灵,似乎有什么使用上的8.0(Excel 2002中)
- Excel 14.0(Excel 2010)我实际上有
所有这些给了我相同的结果。
接下来,我(与供应商串的不同变化再次)尝试分布式查询截至Import excel file to SQL Server Express所示,
USE ExTest
SELECT * INTO TstTbl FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 14.0;Database=c:\ExTest.xlsm', [Contacts])
go
使我有以下错误:
OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "Unspecified error".
Msg 7303, Level 16, State 1, Line 3
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".
代替去SQL Server &拉数据,我应该留在Excel &推它吗?
我在做什么错?
PS:请不要告诉我把它转换成csv文件!我试图做更少步骤,而不是更多!
“这是一个痛苦的手动设置它不断地”。这是因为你的Excel字段改变了还是因为你不喜欢通过向导?您应该可以保存包并在下次重新运行它....我认为 - 并非100%确定SQL Express。 – 2013-03-15 05:43:52
在你的情况下,我可能只需编写一个C#应用程序来读取Excel并从中获取所需的数据,然后将这些行插入到SQL Server中。 “Jet OleDB”驱动程序出了名的难以使用 - 尤其是在64位服务器操作系统上 - 所以如果可能的话,我会尽量避免使用这些驱动程序 – 2013-03-15 05:56:42
如果你的excel文件架构没有改变,只有文件名正在改变,那么你可以尝试要设置一个包含动态源代码的SSIS包来解决您的问题,您不需要每次都通过向导,只需在每次更改源时更新SSIS配置即可。 – ljh 2013-03-15 05:58:17