Sql server 将Excel导入SQL Server数据库
SQL数据导入向导不允许我更改“编辑映射”选项中的列类型…因此我开始为数据传输“编写查询” 我在网上得到了一些示例,并在我的机器上启用了“临时查询”。但是,我一直得到以下例外情况: 链接服务器的OLE DB提供程序“MSDASQL”(null)返回消息 “[Microsoft][ODBC驱动程序管理器]未找到数据源名称,并且没有 指定默认驱动程序” Msg 7303,16级,状态1,第8行无法初始化数据源 链接服务器的OLE DB提供程序“MSDASQL”的对象(null)Sql server 将Excel导入SQL Server数据库,sql-server,excel,sql-import-wizard,Sql Server,Excel,Sql Import Wizard,SQL数据导入向导不允许我更改“编辑映射”选项中的列类型…因此我开始为数据传输“编写查询” 我在网上得到了一些示例,并在我的机器上启用了“临时查询”。但是,我一直得到以下例外情况: 链接服务器的OLE DB提供程序“MSDASQL”(null)返回消息 “[Microsoft][ODBC驱动程序管理器]未找到数据源名称,并且没有 指定默认驱动程序” Msg 7303,16级,状态1,第8行无法初始化数据源 链接服务器的OLE DB提供程序“MSDASQL”的对象(null) 我看了这条消息上的
- 我看了这条消息上的各种帖子,但它们的描述和解决方案让我觉得它们是针对不同的场景或问题的
- 没有实际的“链接服务器”…服务器和文件都是本地的
问:我的查询错了吗?
查询:
SELECT * FROM OPENROWSET('MSDASQL',
'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);
UID=admin;
UserCommitSync=Yes;
Threads=3;
SafeTransactions=0;
ReadOnly=1;
PageTimeout=5;
MaxScanRows=8;
MaxBufferSize=2048;
FIL=excel 12.0;
DriverId=1046;
DefaultDir=C:\Temp;
DBQ=C:\Temp\DataMigration.xls',
'SELECT * FROM [AK$]')
重新配置服务器的SQL:这很好…我想我还是会把它包括进去
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
更新:SELECT * FROM OPENROWSET('MSDASQL',
'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);
UID=admin;
UserCommitSync=Yes;
Threads=3;
SafeTransactions=0;
ReadOnly=1;
PageTimeout=5;
MaxScanRows=8;
MaxBufferSize=2048;
FIL=excel 12.0;
DriverId=1046;
DefaultDir=C:\Temp;
DBQ=C:\Temp\DataMigration.xls',
'SELECT * FROM [AK$]')
不幸的是,我也不能选择“编辑SQL”如果有办法“启用”这个选项…那对我来说没问题。
该链接服务器实际存在吗?(服务器对象>链接服务器)。看起来您试图使用提供程序(驱动程序)作为实际链接的服务器。您需要首先创建链接服务器。是否需要将此作为Excel源保存?使用平面文件容易多了。@JacobH是的……对不起。就是这样。好的,链接服务器是用来跨服务器查询的,所以这里肯定有一个XY问题。使用链接服务器“解决”这个问题很可能会导致更多问题,如果您确实让它工作的话。强烈建议将Excel保存为以制表符分隔的格式,并尽可能使用平面文件作为源。如果必须使用Excel。我相信这里的解决方案是格式化文件。