20小弟遇到难题了,几天都没解决,烦请各位大神帮忙了!服务器上的sql2008 从ip地址为1921680100的pc机取数据,该数据是存在access2003的一张表里的,sql2008上写了存储过程,并建了个作业定时取数。本来都没问题,能取到数据,可前些天pc机坏了,维修之后数据的存放路径变了(本来放在D盘,现在放到了E盘),于是我将存储过程中的路径也做了相应调整。然后执行作业却总是失败,提示:"Microsoft Access 。"这个文件已经共享,权限为everyone且完全可控,并且除了服务器的SQL会访问这个access文件,没有其他软件在使用,应该不存在“被其他用户以独占方式打开”的情况,而且在查询分析器里执行“exec 存储过程”可以取到数据,在运行中输入“\\1921680100”也能打开这个access文件目录,就是执行作业报错。作业由始至终都没改过,以前能正常执行,按理现在也能正常执行,而且我重新建了一个作业,也是相同报错,不知大家有没有遇到这种情况,请各位大神帮小弟出错主意,万分感谢!补充: SQL完整的提示:已以用户 NT AUTHORITY\SYSTEM 的身份执行。 无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "MicrosoftACEOLEDB120" 的数据源对象。 [SQLSTATE 42000] (错误 7303) 链接服务器"(null)"的 OLE DB 访问接口 "MicrosoftACEOLEDB120" 返回了消息 "Microsoft Access 数据库引擎无法打开文件“\\1921680100\att2000mdb”或向其写入数据。它已经被其他用户以独占方式打开,或者您没有查看和写入其数据的权限。"。 [SQLSTATE 01000] (错误 7412) 该步骤失败。
如下图所示:
不过问题二解决后,会影响SQL Server代理的状态,需要重新开启SQL Server代理。
第一步:由于我的SQL Sever是2012版的,所以在此电脑里输入
C:\Windows\SysWOW64\SQLServerManager11msc
找到配置管理器。(不同版本的SQL Sever配置管理器的地址可能有所差异,可在官网上找到对应的地址。)。
第二步:分别将SQL Server和SQL Server代理两个服务都更改为Local System 。
第三步:开启SQL Server代理(问题一的解决方法)。
第一步:启动SQL Server时更改身份验证为SQL Server验证。登录名为sa(自带),自己设置一个密码,可勾选记住密码。
第二步:开启SQL Server代理(问题一的解决方法)。
第三步:在选择源服务器和目标服务器时,选择使用SQL Server验证,输入(确认)登录名和密码。
第三步:选择传输方法时,选择使用SQL管理对象方法(M)。
把步骤1的消息的详细信息粘贴出来
尝试重新注册 DTSdll 。
找到 SqlServer 2005 安装目录(如 C:/Program Files/Microsoft SQL Server/90/DTS/Binn/),执行
regsvr32exe C:/Program Files/Microsoft SQL Server/90/DTS/Binn/dtsdll
发生这种情况的一般原因是目标服务器的SQL SERVER代理服务的权限过低。更改代理服务权限为LocalSystem账户即可。
A 开始–程序–SQL SERVER 配置管理器
B 点击左侧“SQL SERVER”服务
C 以防万一,分别将SQL SERVER代理和SQL SERVER两个服务都更改为LocalSystem
以上就是关于数据库引擎无法打开文件或向其写入数据。它已经被其他用户以独占方式打开,或者您没有查看和写入其数据的全部的内容,包括:数据库引擎无法打开文件或向其写入数据。它已经被其他用户以独占方式打开,或者您没有查看和写入其数据的、在SQL Sever复制数据库时出现启动、执行SQL Server代理作业错误的解决方法、sql server 2008,SP_OACreate手动执行成功,代理作业定时执行失败等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)