我设置了一个存储过程,用于从网络驱动器上的csv文件导入数据。我麻烦地拍摄所有以前的错误和设置,这是使这项工作的通常要求。我将下面的T / S信息与煮沸的代码放在一起。当我从运行sql server 2016的Windows 2012r2服务器上运行的SSMS 2016运行它时,我正处于完美运行的阶段,我通过远程桌面登录作为我的网络管理员ID。但是当我从在Windows 10桌面上运行的SSMS 2016运行它时,它不起作用,我将其记录为相同的管理员ID。
当我从桌面上的应用程序调用sp时,它也失败了,这将是我想从中调用它的实际位置。
代码:
select *
from openrowset('MSDASQL'
,'Driver={Microsoft Access Text Driver (*.txt, *.csv)}'
,'select * from \\servername\public\Utilities\SWUMOps\BackEnd\saws\accts.csv')
桌面上的ssms错误:
OLE DB提供程序" MSDASQL"对于链接服务器"(null)"返回消息" [Microsoft] [ODBC文本驱动程序]' \ servername \ public \ Utilities \ SWUMOps \ BackEnd \ saws'不是一个有效的道路。确保路径名拼写正确,并且您已连接到文件所在的服务器。"。
Msg 7320,Level 16,State 2,Line 1
无法执行查询" select * from \ servername \ public \ Utilities \ SWUMOps \ BackEnd \ saws \ accts.csv"针对OLE DB提供程序" MSDASQL"对于链接服务器"(null)"。
.............
我已将服务ID的个人资料中的临时文件夹设置为每个人和要修改的域用户
我在64位sql server上加载了64位驱动程序
我已经设置了' Ad Hoc Distributed Queries',1;
我验证了SQL Server服务ID位于Global组中,该组对远程共享上的文件夹和文件具有权限。
我所做的所有研究都一直指回上面的这些步骤。 我也看到了一些关于强制tcp / ip而不是命名管道的东西,但是现在没有启用命名管道。
这似乎与权限的使用方式有关,与从服务器上或从服务器运行tsql时的方式不同,所以我希望这会为你们中的一个人敲响钟声。
由于
编辑: 我还通过使用它登录到我的桌面并在unc路径上打开文件来测试sql svr服务id,没有任何问题。