一尘不染

错误:链接服务器的``LE DB提供程序''满SDASQL''(空)返回消息''Microsoft''[ODBC驱动程序管理器]未找到数据源名称''。

sql

如果我执行以下命令:

select 
    * 
from 
    OpenRowset (
        'MSDASQL',
        'Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir=C:\;',
        'select top 10 * from C:\x.csv'
    )

…然后Microsoft SQL Server Management Studio响应:

[Microsoft] [ODBC驱动程序管理器]找不到数据源名称,也未指定默认驱动程序。

我在Win 7 x64上运行Microsoft SQL Server 2008 R2。我也在Windows Vista x32上尝试过,同样的错误。

问题:

  1. 有谁成功在Win 7 x64上运行此命令?
  2. 你们中有谁知道是什么原因导致T-SQL命令失败?

更新1:

如果您收到提及“临时查询”的错误,请运行以下命令将其消除:

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

更新2:

它可以在现成的Win7 x64计算机上运行,​​但是我仍然无法在我的计算机上修复此错误。我将使用“批量插入”(请参阅​​下面的评论)。


阅读 194

收藏
2021-03-10

共1个答案

一尘不染

我只是在x64 Win7上尝试过并使其正常工作。我认为有几个问题。

  1. 我相信您必须在*.txt;和之间添加一个空格*.csv
  2. 不要在文件名中包含路径

这工作:

select * from OpenRowset('MSDASQL', 
         'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=c:\;', 
         'select top 10 * from x.csv')
2021-03-10