事务中带openQuery后默认为分布式事务,怎么设成本地事务?

mhhaifeng 2012-12-12 02:56:24
begin tran
select * from openQuery(sHisDB,'select * from Interface_Patient_Mi ')

update interface_synch set StopSynch=0 where upper(table_name)=upper('Interface_Dayily_Fee');
commit tran
运行后出错
服务器 'EWGTHGRWY' 上的 MSDTC 不可用。
在此事务需求中
需要用到 openQuery查数据
但并不需要更新异构数据库的数据,并不需要启动分布式事务,也不能启动
但本地数据库的数据需要修改 所以要启用事务

事务处理过程中带用 openQuery 所以系统自动默认为分布式事务
有没有办法 设成本地事务 模式 怎么设?

我用的是sql server 2000



...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mhhaifeng 2012-12-17
  • 打赏
  • 举报
回复
为什么OPENQUERY放到BEGIN TRAN后面? 因为事务中有用到OPENQUERY 上面只是举个例子 比如 事务中会出现 类似 insert into Localtable select * from openQuery(sHisDB,'select * from Remotetable ') 根据异构数据库的数据修改本地数据 现在问题是,启动事务后,会默认为分布式事务 怎么设置为默认为本地事务? 异构数据库并不需要修改
KevinLiu 2012-12-17
  • 打赏
  • 举报
回复
这个是SQL SERVER确定的应该没有地方可以更改。因为你的事务是包含两个服务器的,虽然不对远程服务器数据做更改,这样也是分布式。
KevinLiu 2012-12-16
  • 打赏
  • 举报
回复
这样就会认为是分布式事务了需要使用MSDTC。
KevinLiu 2012-12-16
  • 打赏
  • 举报
回复
为什么OPENQUERY放到BEGIN TRAN后面?
我腫了 2012-12-15
  • 打赏
  • 举报
回复
服务器 'EWGTHGRWY' 上的 MSDTC 不可用。 MSDTC 設置錯誤?
mhhaifeng 2012-12-15
  • 打赏
  • 举报
回复
就是不能启动…… 只有从异构数据库取数据的权限
开启时代 2012-12-12
  • 打赏
  • 举报
回复
启动下msdtc 不就可以了

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧