SQLServer2005触发器提示其他会话正在使用事务的上下文的解决方法

MSDN上看了一下说是sql server 2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器)
个人尝试了下是由于在双向的sql server访问中采用了链式方式访问(LinkedServer方式),遇到这种情况只需要将原来访问对方数据库的语句:

复制代码 代码如下:
select  *  from  linkedServerA.dbo.table1

修改为:
复制代码 代码如下:
select  *  from  dbo.table1

即可。

触发器代码如下:

复制代码 代码如下:
create trigger tgr_dressNotice_insert
on dress_notice_config
    ---with encrypion –--加密触发器
    after insert  ----update级别trigger
as
begin
    --as raisError('tgr_dressNotice_insert触发器被触发', 16, 10);
   /* 定义变量 */
   declare @sDBServer char(20)  /*用于存放目的数据库*/
   declare @sSql varchar(600)  
   declare @server varchar(100)
   declare @oadb varchar(100)

select @oadb=db_server from dic_organ where valid='1' and rank in('A','B') and organ_id='000000'
   set @server=rtrim(@oadb) + '.dbo.spoa_exec_string'

/*define cursor*/
   declare db_cursor cursor for
       select db_server from dic_organ where valid='1' and rank in('A','B') and organ_id<>'000000'

/*open cursor*/
   OPEN db_cursor
   FETCH NEXT FROM db_cursor
   INTO @sDBServer

while(@@Fetch_status = 0)
       begin
            /*将数据同步更新到各个分局的数据库中*/
            set @sSql='delete from ' + RTRIM(@sDBServer) + '.dbo.dress_notice_config'
            print @sSql           
            exec @server @sSql
            set @sSql='insert into ' + RTRIM(@sDBServer) + '.dbo.dress_notice_config select * from dress_notice_config'    
            print @sSql
            exec @server @sSql

FETCH NEXT from db_cursor
               into @sDBServer
       end

--最后关闭游标
    close db_cursor
    deallocate db_cursor
end
go

时间: 2024-11-08 20:23:49

SQLServer2005触发器提示其他会话正在使用事务的上下文的解决方法的相关文章

Windows7提示Ping不是内部或外部命令的解决方法

  Windows7提示Ping不是内部或外部命令的解决方法 对于网络管理员来说,经常会需要使用到Ping命令,对服务器相关事项进行检查.但有时在Windows7旗舰版系统中使用Ping命令时,也会遇到不成功,提示"Ping不是内部或者外部命令"的问题,这让不少网管伤透了脑,怎么办?下面就由小编分享Windows7提示"Ping不是内外部命令"的解决技巧. 1.在"计算机"图标上右键选择"属性",在打开的计算机属性设置窗口中选

win7系统提示你尚未正确安装工行网银控件的解决方法

  win7系统提示你尚未正确安装工行网银控件的解决方法           步骤一:打开我们在win7 32位系统中常用的浏览器,然后找到菜单栏中的"工具"打开菜单之后点击"Internet选项"打开Internet属性设置窗口,并把窗口设置切换到"安全"这个选项卡. win7系统 步骤二:在安全的选项卡下,我们看到下方有一个名为"自定义级别"的按钮,我们点击这个按钮之后,会进入到一个新的窗口进行设置,在窗口下方的列表里面找

Win7远程操作时提示“远程桌面服务当前正忙”两种解决方法

  Win7远程操作时提示"远程桌面服务当前正忙"两种解决方法           Win7系统远程桌面操作能够实现远程操控电脑,通过远程连接来进行一些控制,可是有些用户在进行远程连接的时候,输入账号密码无法进入,重新进入就会提示"由于远程桌面服务当前正忙,因此无法完成您尝试执行的任务",遇到这个问题该如何解决呢?下面小编给大家两种解决方法. 解决方法一 看一下你电脑任务管理器此项任务是否还在,如果在的话关掉就行了,很多时候是电脑没有反应过来造成的. 解决办法二 原

win8系统登录QQ提示QQ软件已被破坏无法继续使用解决方法

  win8系统登录QQ提示QQ软件已被破坏无法继续使用解决方法.大家对腾讯QQ都比较熟悉吧,我们可以使用QQ聊天.视频.传输文件等等,但是有些用户在win8系统登录QQ一段时间后出现"QQ软件已被破坏,无法继续使用"的提示,重新启动QQ是正常的,但是没过一会又出现这样的问题,重启QQ已经不能从根本上解决问题了.针对此问题,下面小编讲解win8系统登录QQ提示"QQ软件已被破坏,无法继续使用"的解决方法. 计算机信息系统罪"> 故障原因:由于自己对Q

Win7旗舰版系统提示应用程序错误代码0xc0000409的故障原因及解决方法

  问题现象,具体如下所示: 故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏. 解决方法: 1.下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2.下载瑞星杀毒软件,清理一下系统,查杀一下木马,清理开机启动的错误项等; 3.用系统自带的系统还原,还原到你没有出现这次故障的时候修复(或用还原软件进行系统还原,如果进不了系统,开机按F8进入安全模式还原系统); 4.如果故障依旧,使用系统盘修复,打开命令提示符输入SFC /SCANN

win7系统提示某文件损坏请运行chkdsk工具的解决方法

  win7系统用户在操作使用系统的过程中,有时候会遇到一些平时很少见到的故障问题.比如某用户反馈的在电脑桌面右下角一直提示某文件损坏请运行chkdsk工具,关闭该提示,过不了多久又重新弹出.那么遇到这种烦人的情况我们应该怎么办呢?下面一起来了解下具体的解决方法吧! 解决方法: 1.鼠标点击win7系统"开始"菜单.选择"运行"选项; 2.在"运行"窗口中输入CMD字符命令,按确定键; 3.在出现的界面中输入 chkdsk c: /f并按确定键;

XP系统电脑开机提示&quot;找到新的硬件向导&quot;的两种解决方法

  XP系统电脑一开机就会弹出"找到新的硬件向导"的窗口,但是每次点击下一步之后又发现根本就没有什么硬件,更无法找到驱动,但是下次开机的时候,这个新硬件向导窗口又会弹出来,具体现象如下所示: 第一种解决方法:停用该硬件 也就是这里弹出来的想要我们安装的硬件,咱们直接将其停用掉就好了,但是在执行此操作之前,大家必须要确定自己不需要使用到这个硬件.操作方法如下: 具体步骤如下: 1.右键点击我的电脑--属性; 2.设备管理器--找到感叹号或者是问号的硬件项目或者是硬件向导提示你安装的硬件驱

php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法_php技巧

本文实例讲述了php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法.分享给大家供大家参考.具体如下: ZipArchive是php自带的一个压缩与解压缩函数了,今天理所当然的情况中使用new ZipArchive来创建zip文件时碰到提示Fatal error: Class ZipArchive not found in错误,感兴趣的朋友就一起来看看解决方法. 测试代码如下: 复制代码 代码如下: //PHP解压缩文件(

Python提示[Errno 32]Broken pipe导致线程crash错误解决方法_python

本文实例讲述了Python提示[Errno 32]Broken pipe导致线程crash错误解决方法.分享给大家供大家参考.具体方法如下: 1. 错误现象ThreadingHTTPServer 实现的 http 服务,如果客户端在服务器返回前,主动断开连接,则服务器端会报 [Errno 32] Broken pipe 错,并导致处理线程 crash. 下面先看个例子,python 版本: 2.7 示例代码 复制代码 代码如下: #!/usr/bin/env python #!coding=ut