微软BI开拓者数据库专区SQL Server开发 请教一个在sqlserver2005中执行远程存储过程的问题

1  /  1  页   1 跳转 查看:2293

[上传案例] 请教一个在sqlserver2005中执行远程存储过程的问题

请教一个在sqlserver2005中执行远程存储过程的问题

1.在远程服务器A的数据库中建立一个存储过程remote_sp
2.在本地服务器B的数据库中建立一个指向A的链接服务器linkserverA
3.在本地服务器B的数据库中建立一个存储过程local_sp,该过程调用A中的存储过程remote_sp
CREATE PROC local_sp
AS
BEGIN
    BEGIN TRANSACTION
    declare @i int
    SELECT * FROM linkserverA.database_A.dbo.tableA  -- (可以查询到数据)
    exec linkserverA.database_A.dbo.remote_sp @i output  --(报错)
    select @i
    COMMIT
END


exec local_sp 时报错:

OLE DB provider "SQLNCLI" for linked server "linkserverA" returned message "此事务已明地或暗地被确认或终止".
消息 7391,级别 16,状态 2,第 5 行
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "linkserverA" was unable to begin a distributed transaction.

这是什么原因造成的啊?
 

回复:请教一个在sqlserver2005中执行远程存储过程的问题

local_sp 里
BEGIN TRANSACTION
。。。
COMMIT
去掉

远程更新是非常不安全的,最好弄个siss package去搞吧
 

回复 1F EVAN 的帖子

使用链接服务器更新、删除远程数据是无法使用事务的。如果你必须使用链接服务器操作远程数据,那就是不要使用事务。
 

回复:请教一个在sqlserver2005中执行远程存储过程的问题

请楼主查阅下分布式事务相关资料
SQL交流QQ群:29778717
由于以上群已满,请加新群100485723
(人不多,希望支持)
 
1  /  1  页   1 跳转

版权所有 微软BI开拓者 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.0937536 second(s) , 3 queries.
返顶部