【发布时间】:2021-09-13 15:15:10
【问题描述】:
我有一个 Access DB,我使用 Microsoft Office 12.0 Access Database Engine OLE DB Provider 将它连接到 SQL Server 2012 (v11.0.7507) 作为链接服务器。
连接通常工作正常,但有 2 个自动作业可以推送/拉取数据并更新 Access DB 中的一些其他数据,其中任何一个有时(不经常但有时)在连接到 Access DB 时会“卡住” . SQL Server 中的会话是可见的,但无法被终止 - 或者实际上当我尝试终止它时,它会卡在 KILLED/ROLLBACK 状态。
没有MSACCESS.EXE 在任务列表中打开,但是管理工具的打开文件部分确实显示了 SQL 代理打开的 accdb(和 laccdb)文件。不幸的是,在那里关闭它们并不能解决问题,accdb 和 laccdb 文件仍然被锁定。
唯一的解决方案是重新启动 SQL Server,然后删除 laccdb 文件,但这不是一个很舒服的解决方案。
我尝试搜索类似的问题,但到目前为止没有找到可行的解决方案。主要问题是(看似)随机性。 大家有没有遇到过类似的情况?你知道这个设置有什么问题吗?
非常感谢。
【问题讨论】:
-
SQL Server 日志中是否有任何错误?
-
尝试使用更新的本机 17 驱动程序访问 SQL 服务器。他们有一些标准的“sql server driver”没有的内置重新连接能力。这确实意味着您必须在该计算机上为 SQL Server 安装本机 17 odbc 驱动程序,但我会尝试一下。您必须重新链接 Access 表并使用基于新驱动程序的 DSN。
-
错误日志并没有真正提供信息......我唯一能从中得到的是:读取地址0000001659E8AA81发生访问冲突异常代码= c0000005 EXCEPTION_ACCESS_VIOLATION我猜这与laccdb有关卡住。关于较新的驱动程序,我们尝试安装它们,但它们尚未可用 - 可能需要重新启动服务器。下次重启后我们会看到。
标签: sql-server ms-access automation