我使用 Excel 收集和配置数据,然后将其导入 SQL Server 2012 进行存储。
到目前为止,我一直在使用 SQL Server 导入和导出向导,但不断手动设置它很痛苦。由于我使用的是 Express,当然它不允许我保存甚至查看传输数据的实际命令。
我尝试根据如何将 Excel 与 SQL Server 链接服务器和分布式查询一起使用来设置链接服务器,但出现以下错误:
已创建链接服务器,但连接测试失败。您要保留链接服务器吗?
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)
无法为链接服务器“FLTST”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。
链接服务器“FLTST”的 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”返回消息“未指定错误”。(Microsoft SQL Server,错误:7303)
我想也许 Excel 版本号是问题所在,因为网页是 2005 年的,所以我尝试了:
- Excel 8.0 (Excel 2002) 如页面所示
- Excel 12.0 (Excel 2007) 这是向导似乎使用的
- 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
这给了我以下错误:
链接服务器“(null)”的 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”返回消息“未指定错误”。
消息 7303,级别 16,状态 1,第 3 行
无法初始化链接服务器“(null)”的 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。
我应该留在 Excel 中并将其推送过来,而不是去 SQL Server 并拉入数据吗?
我究竟做错了什么?
PS:请不要告诉我将其转换为csv文件!我正在尝试做更少的步骤,而不是更多!