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

网友投稿 482 2023-12-10

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

SQLServer2005触发器提示其他会话正在使用事务的解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

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

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

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

修改为:

 代码如下: select * from dbo.table1

即可。

触发器代码如下:

代码如下: 

create trigger tgr_dressNotice_inserton dress_notice_config

---with encrypion –--加密触发器 

after insert ----update级别triggerasbegin --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_cursorendgo

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何使用正则表达式匹配注释tsql语句
下一篇:sql server获得新记录标识列值的方法是什么
相关文章

 发表评论

暂时没有评论,来抢沙发吧~