MSDN上看了一下说是sql server 2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器) 这个是官方的回答 个人认为,应该是在事务中,使用了链接服务器访问进行跨库访问引起的 比如说   有个名叫 “TGTreasureDBServer” 链接服务器访问,指向 数据库A , 然后,在数据库B 中 建立存储过程 数据库B: CREATE PROCEDURE proc_b begin BEGIN TRANSACTION select * TGTreasureDBServe…
本人经过百度查找并且自己进行测试得到问题原因: MSDN上看了一下说是sql server 不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器) 通过上面简单说明大家有可能没完全理解环回链接服务器的意思.下面直接来几段代码相信大家就明白了 1.打开本机SQL Server Management Studio工具,连接一个数据库服务器 这里使用本机数据库服务器. 2.在本机数据库服务器上建一个链接服务器连接的地址就是本机服务器,名称为 LS_Test. 3.假设本地数据库服务器下有…
这个异常是我第二次遇到! 从网上查找资料后知道了是由于数据库链接字符串是远程链接造成的,去掉链接服务器地址就行了,换成普通的链接字符串就可以了…
--查看当前链接情况: select * from sys.servers; --增加链接,参数:服务器别名,为链接服务器的OLE DB数据源的产品名称,与此数据源对应的OLE DB访问接口的唯一编程标识符(PROGID),由OLE DB访问接口解释的数据源的名称 --这种设置链接服务器的方式强制链接服务器的名称与 SQL Server 远程实例的网络名称相同,也就是计算机名称参考:https://msdn.microsoft.com/zh-cn/library/ms190479.aspx EX…
最近工作中需要跨服务器同步数据,在数据库DB1中的表T1插入数据,同时触发T1的触发器(这里暂不讨论触发器的效率问题),向另一台服务器DB2中的相同的一张表T2插入数据,查看了一些资料说, 需要打开DTC(分布式交易协调器)协调跨多个数据库.消息队列.文件系统等资源管理器的事务, 于是按照网上说的,将自己的DTC打开启动,步骤如下: DTC位置:控制面板--管理工具--服务--Distributed Transaction Coordinator 然后在本机SqlServer里新建一个触发器测试…
首先创建两个数据库:SyncA是数据源,SyncB是对SyncA进行同步的数据库. 在SyncA和SyncB中分别创建Source表和Target表,实际业务中,两张表的结构大多不相同.     然后创建一个类库的项目:MySync(注意项目的版本,Sql08不支持的.net 4.0及更高版本) 下面是同步程序代码: using System; using System.Data; using System.Data.Sql; using Microsoft.SqlServer.Server;…
问题背景 一年前,我们开始利用.Net 4.0的TPL(Task Parallel Library)并行计算技术对复杂计算的功能节点进行性能优化,这些复杂计算往往会包含大量对数据库的操作.在应用TPL时我们发现,如果每个Task都开启独立事务(RequireNew)的话,那么一切工作正常.但是,如果每个Task需要与父线程工作于同一个事务中(Required),则多线程并行计算时会经常性地抛出"其他会话正在使用事务的上下文"的错误(Transaction context in use…
SQL Server的查询优化器在select查询执行的时候产生一个高效的查询执行计划.如果优化器不能选择最优的计划,那么就需要检查查询计划.统计信息.支持的索引等,而通过使用提示可以改变优化器选择查询计划的工程,使优化器生成一个更好的执行计划. 1.联接提示 <join_hint> ::=      { LOOP | HASH | MERGE | REMOTE } LOOP | HASH | MERGE 指定查询中的联接应使用循环.哈希或合并. 使用 LOOP |HASH | MERGE J…
事务的概念 事 务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查 询语句因为崩溃或其他原因而无法执行,那么所有的语句就都不会执行.也就是说,事务内的语句要么全部执行,要么一句也不执行. 事务的特性:acid,也称为事务的四个测试(原子性,一致性,隔离性,持久性) automicity:原子性,事务所引起的数据库操作,要么都完成,要么都不执行consisitency:一致性,事务执行前的总和和事务执行后…
事务的ACID属性 Atomicity 原子性 每个事务作为原子单元工作(即不可以再拆分),也就是说所有数据库变动事务,要么成功要么不成功. SQL Server把每个DML或者 DDL命令都当做一个事务.不允许任何命令只是部分成功. 比如一个UPDATE语句更新500行,除非500行全部更新,否则有任何情况阻止该命令更新.SQL Server会终止该命令更新,并且回滚事务. Consistency 一致性 每个事务,不论成功或失败,数据库中定义的约束状态必须一致,否则会回滚. 比方说一个事务企…