set XACT_ABORT on
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on BEGIN DISTRIBUTED TRANSACTION
INSERT INTO [cxcv_db1].[dbo].[员工信息表] VALUES('2004302123','huku','staff','service',2000,'2009-12-12' )
commit tran
执行结果:
链接服务器"db2"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。
消息 7391,级别 16,状态 2,过程 trigger_cxcv_db1_insert,第 12 行
无法执行该操作,因为链接服务器 "db2" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on BEGIN DISTRIBUTED TRANSACTION
INSERT INTO [cxcv_db1].[dbo].[员工信息表] VALUES('2004302123','huku','staff','service',2000,'2009-12-12' )
commit tran
执行结果:
链接服务器"db2"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。
消息 7391,级别 16,状态 2,过程 trigger_cxcv_db1_insert,第 12 行
无法执行该操作,因为链接服务器 "db2" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
位置:控制面板--管理工具--服务--Distributed Transaction Coordinator
依存关系:Remote Procedure Call(RPC)和Security Accounts Manager
建议:一般家用计算机涉及不到,除非你启用Message Queuing服务,可以停止。
解决办法: 1. 在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->属性-->启动
2.在CMD下运行"net start msdtc"开启服务后正常。
注:如果在第1步Distributed Transaction Coordinator 无法启动,则是因为丢失了日志文件,重新创建日志文件,再启动就行了。重新创建 MSDTC 日志,并重新启动服务的步骤如下:
(1) 单击"开始",单击"运行",输入 cmd 后按"确定"。
(2) 输入:msdtc -resetlog (注意运行此命令时,不要执行挂起的事务)
(3) 最后输入:net start msdtc 回车,搞定!