Sql server 2008 无法开始分布式事务:链接服务器->;Access数据库 规格: Sql Server 2008 服务器2008 R2 64位 MS Access数据库 工作原理: 我通过安装office Access数据组件并创建系统DSN等配置了与Access数据库的链接服务器连接。 位于同一服务器上的目录中

Sql server 2008 无法开始分布式事务:链接服务器->;Access数据库 规格: Sql Server 2008 服务器2008 R2 64位 MS Access数据库 工作原理: 我通过安装office Access数据组件并创建系统DSN等配置了与Access数据库的链接服务器连接。 位于同一服务器上的目录中,sql-server-2008,ms-access,odbc,msdtc,linked-server,Sql Server 2008,Ms Access,Odbc,Msdtc,Linked Server,我已经成功地通过openquery查询数据 从OPENQUERY中选择*(LINKEDHELL,'从[D:\path\mordor.mdb].Orcs'中选择*) 我可以通过openquery(从Sql Management Studio内部)插入/更新/删除 什么不起作用: 我创建了一个数据库,它公开了一个封装openquery表达式的视图。这使我的应用程序能够忽略通过链接服务器连接进行查询的事实,并允许我使用ORM。例如:实体框架 然而,在检索数据时,更新/插入/删除不会起作用。 我花了相

我已经成功地通过openquery查询数据

从OPENQUERY中选择*(LINKEDHELL,'从[D:\path\mordor.mdb].Orcs'中选择*)

  • 我可以通过openquery(从Sql Management Studio内部)插入/更新/删除

  • 什么不起作用: 我创建了一个数据库,它公开了一个封装openquery表达式的视图。这使我的应用程序能够忽略通过链接服务器连接进行查询的事实,并允许我使用ORM。例如:实体框架

    然而,在检索数据时,更新/插入/删除不会起作用。 我花了相当长的时间来确保MSDTC配置正确,但是没有骰子

    我试过的 MSDTC

    • 启用网络故障诊断码访问
    • 允许入站/出站
    • 配置防火墙
    • 启用的XA事务
    • 提供DTC工作时使用的帐户访问.mdb
    • 在进行这些设置后重新启动Sql Server
    其他

    • 已配置链接服务器安全性:在sql用户和本地管理员帐户之间创建映射,以便当我使用该sql用户登录时,它使用本地管理员帐户连接到access数据库
    • 为RPC启用分布式事务升级:False
    我得到的错误是:

    OLE DB provider "MSDASQL" for linked server "LINKEDHELL" returned message "[Microsoft][ODBC Microsoft Access Driver]Invalid attribute/option identifier ".
    Msg 7391, Level 16, State 2, Line 4
    The operation could not be performed because OLE DB provider "MSDASQL" for linked server "LINKEDHELL" was unable to begin a distributed transaction.
    
    我可以通过在Sql Management Studio中执行此操作来简单地重新创建它

    begin distributed transaction
    
    //anything that queries the linked server
    
    commit transaction
    
    那么我错过了什么? 我读到ODBC驱动程序支持分布式事务,但我不确定ACCESS数据库是否支持。所以如果有人能至少证实这一点。那会有帮助的

    Access没有事务,因为Access不是数据库 引擎。Jet/ACE(Access的默认数据库引擎)支持 提交/回滚,只要我使用过它(自Jet 2.x以来,例如1996年)。 它从未支持过事务日志记录,而且可能永远也不会(I 认识到这不是你要问的问题,而是很多即将到来的问题 从服务器数据库访问Jet/ACE在服务器上的背景相当模糊 “交易”一词的含义很难理解 Jet/ACE支持其中一种,而不是另一种David-W-Fenton 2010年1月16日 23点12分

    --


    你希望得到什么?工作环境?MS Access不支持此类事务。正如我在文章末尾所说,我不确定Access是否支持分布式事务,因为我无法找到关于这一点的最终答案。如果你说它不受支持,我想看看你的消息来源。如果你能在回复中而不是评论中回答这个问题,我很乐意将其标记为答案。