SQLOLEDB无法启动分布式事务

--A服务器存储过程
CREATE procedure sp_test
as
begin
	SET NOCOUNT ON
	declare @s varchar(max)='
	create table #A
	(
		a int 
	)
	
	 insert into #A  values(1)

	select a from #A
	drop table #A 
	'
	exec(@s)
end 

--B服务器调用
create table #AA
(
a int 
)


insert into #AA
EXEC [服务器].数据库.dbo.sp_test 


--SQL提示:错误消息 OLE DB 提供程序 SQLOLEDB 无法启动分布式事务
--如下调用,可以解决(SQL2012+)
insert into #AA
exec(
'select *  from  openquery
(
	服务器,''exec  数据库.dbo.sp_test 
	 WITH RESULT SETS
	 (
		(
			b int
		)
	 )
	 ''
)'
)

内容概要: 本文档详细介绍了当SQL Server数据库链接服务器使用提示“访问接口 "SQLNCLI10" 无法启动分布式事务”的错误时的解决方法。主要针对的是在服务器A的数据库实例中通过触发器调用服务器B的存储过程时发生的错误。 文中描述了具体的服务器及数据库环境,包括操作系统和SQL Server版本等信息。解决步骤包括设置hosts文件、启用SQL Server的分布式服务选项、配置MSDTC(分布式事务协调器)的安全选项、确保服务自动启动以及开放必要的防火墙端口。每一步骤都配有具体的操作指南,确保设置的正确性和完整性。最后,提供了组件服务的两种打开方式,并建议在完成设置后重启相关服务和服务器以确保设置生效。; 适合人群:SQL Server数据库管理员或负责跨服务器数据库操作的技术人员。; 使用场景及目标: ①解决SQL Server数据库链接服务器在执行跨服务器操作时遇到的分布式事务启动失败的问题; ②确保能够成功通过触发器调用远程服务器上的存储过程,实现跨服务器的数据交互。; 阅读建议:由于涉及到多个系统的配置更改,建议严格按照文档提供的步骤顺序执行,并在操作前备份现有设置,以防止配置失误导致的服务中断。同时,对于不熟悉的命令和服务操作,建议先查阅官方文档或相关资料,确保理解后再进行实际操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值