sql-链接服务器"xx"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。

问题描述

链接服务器"xx"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。

链接服务器"DATASERVER"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。
消息 0,级别 11,状态 0,第 0 行
当前命令发生了严重错误。应放弃任何可能产生的结果。
ALTER PROCEDURE [dbo].[SjSc]

AS
SET XACT_ABORT ON

BEGIN TRY

BEGIN TRANSACTION;

--插入总部数据库
insert into DATASERVER.Sfl.dbo.pos_mast(lshh,rq,cardid,ontime,onhour,djbh,sktid,shky,shkyid,yishj,mx_count,je_count,jzid,fdbs,ysje,sshje,shkje,zhaol,guard_sn,copys,xiaoph,piece_count,yitiqu,beizhu )
(select lshh,rq,cardid,ontime,onhour,djbh,sktid,shky,shkyid,yishj,mx_count,je_count,jzid,fdbs,ysje,sshje,shkje,zhaol,guard_sn,copys,xiaoph,piece_count,'否' as yitiqu,beizhu from db_mast where upbs='是')

insert into DATASERVER.Sfl.dbo.pos_mxls(lshh,plh,hw,bm,xshyid,xshy,pihao,spid,shl,lshj,ysje,dj,sshje,koul,shlv,je,she,chbdj,chbje,ml,xiaoph,sktid,yishj,cardid,fdbs,fangabh,shoutpz,is_tjsp)
(select lshh,plh,hw,bm,xshyid,xshy,pihao,spid,shl,lshj,ysje,dj,sshje,koul,shlv,je,she,chbdj,chbje,ml,xiaoph,sktid,yishj,cardid,fdbs,fangabh,shoutpz,is_tjsp from db_mxls where upbs='是')

insert into DATASERVER.Sfl.dbo.pos_jels(lshh,jsfsid,plh,sshje,shkje,zhaol,sktid,yishj,fdbs)
(select lshh,jsfsid,plh,sshje,shkje,zhaol,sktid,yishj,fdbs from db_jels where upbs='是')

COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
SELECT ERROR_NUMBER() AS ERRORNUMBER
END CATCH
SELECT 1 AS ERRORNUMBER

本地局域网内执行不存在任何问题,使用VPN拔号上来的机器执行以上代码会报标题中的错误,如果将事务去掉单纯执行insert,VPN拔号上来的店也不报错.VPN拔号上来的店PING 服务器的名子和IP均可以PING通,MSDTC之类的检查了N遍不存在问题
求大神指点,

解决方案

参考没有活动事务 链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务

时间: 2024-12-20 17:53:26

sql-链接服务器"xx"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。的相关文章

SQL 错误描述为: 链接服务器 (null)的 OLE DB 访问接口

SQL 错误描述为: 链接服务器 (null)的 OLE DB 访问接口 向SQL Server2005里导入数据是出现错误"SQL 错误描述为: 链接服务器 '(null)' 的 OLE DB 访问接口'STREAM' 返回了对列 '[!BulkInsert].field' 无效的数据",已打了SQL Server2005的最新补丁,在SQL Server2008里有同样的问题. BaiDu了下,有人说好像是SQL 2005的一个未公开的Bug,在SQL Server2000里没有这

SQL链接服务器访问远程Access数据库

由于Access数据库是一种文件型数据库,所以无法跨服务器进行访问.下面我们来介绍一下如何利用SQL Server 的链接服务器,把地理上分散的Access 数据库整合起来,使 Access 数据库具有跨越 Web 服务器群的能力.此方法还可以使 Access 数据库与SQL Server数据库,甚至 Oracle 等网络数据库连接起来,实现异构数据库的互连,最终执行分布式的查询.更新.命令和事务. 1.创建链接服务器,连接本地 Access 数据库 创建链接服务器可以用"企业管理器"

数据库-Sql server 2005 链接服务器问题

问题描述 Sql server 2005 链接服务器问题 有A,B两台服务器已建立链接, 在B服务器分析器中Select * into #tmpa from [a].xx.dbo.xx 可以执行 update [a].xx.dbo.xx set counter = 1 wehre num in (select num from #tmpa) 也可执行 delete from [a].xx.dbo.xx where num in (select num from #tmpa) 就是删除不行提示以下

SQL Server的链接服务器技术小结

server|服务器|链接 一.使用 Microsoft OLE DB Provider For ODBC 链接MySQL安装MySQL的ODBC驱动MyODBC1.为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN 2.建立链接数据库EXEC sp_addlinkedserver  @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN'

SQL Server 远程链接服务器详细配置

原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html 远程链接服务器详细配置--建立连接服务器EXEC sp_addlinkedserver  '远程服务器IP','SQL Server'--标注存储EXEC sp_addlinkedserver@server = 'server', --链接服务器的本地名称.也允许使用实例名称,例如MYSERVER\S

SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)

原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MySQL 安装MySQL的ODBC驱动MyODBC 1.为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN 2.建立链接数据库 EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL',

sql、 oracle-SQL创建oracle链接服务器始终不成功,求解!

问题描述 SQL创建oracle链接服务器始终不成功,求解! 环境如下: 1.1台服务器为SQL2005数据库,安装了oracle client11g 2.1台服务器为oracle 10g数据库,安装了oracle client10g,已经创建了数据库为test,有表tab1. 3.两台服务器监听已经配置,并测试提示链接成功! 4.通过SQL 2005数据库创建服务器,使用Oracle Provider for OLE DB 接口创建成功,链接服务器名称为:ORAC 5.通过select * f

SQL Server的链接服务器技术小结_MsSql

一.使用 Microsoft OLE DB Provider For ODBC 链接MySQL 安装MySQL的ODBC驱动MyODBC 1.为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN 2.建立链接数据库 EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN' GO EXEC sp_

通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案_mssql2005

1.新建链接服务器  在图1中选中"链接服务器",右键选择"新建链接服务器",如图2,配置相关参数. 2.配置相关参数 在"常规"选项中,填写"链接服务器名称",访问接口选中 " Microsoft OLE DB Provider for Oracle"项.其中产品名称.数据源.访问接口字符串请填写配置的Oracle客户端在本地配置的net服务名.如图3所示. 在"安全性"项中,选中使用