Sql server 将Excel导入SQL Server数据库

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) 我看了这条消息上的

SQL数据导入向导不允许我更改“编辑映射”选项中的列类型…因此我开始为数据传输“编写查询”

我在网上得到了一些示例,并在我的机器上启用了“临时查询”。但是,我一直得到以下例外情况:

链接服务器的OLE DB提供程序“MSDASQL”(null)返回消息 “[Microsoft][ODBC驱动程序管理器]未找到数据源名称,并且没有 指定默认驱动程序”

Msg 7303,16级,状态1,第8行无法初始化数据源 链接服务器的OLE DB提供程序“MSDASQL”的对象(null)

  • 我看了这条消息上的各种帖子,但它们的描述和解决方案让我觉得它们是针对不同的场景或问题的
  • 没有实际的“链接服务器”…服务器和文件都是本地的
Q:我是否启用了错误的属性选项?
问:我的查询错了吗?

查询:

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。我相信这里的解决方案是格式化文件。