1  跨服务器的事务是否必须每个服务器都开了DTC服务才行啊。还是只要执行查询所在的服务器开了就行。
2  因为权限问题,不能打开DTC。所以无法打开DTC。能不能让查询不使用事务啊。

解决方案 »

  1.   

    分布式事务, 当然需要两台服务器都开msdtc了
      

  2.   

    查询本来就可以不用事务啊
    默认情况下,整个存储过程都当作一个事务的吗?还有邹大哥你试一试能不能实现不打开DTC服务的前提下,是用存储过程操作两个服务器上的表,看是否能够实现。
    ① 'EXEC OPENDATASOURCE( ''SQLOLEDB'',''Data Source=XXX.XXX.XXX.XXX;User ID=XX;Password=XX;'' ).dbname.dbo.Sp_getwantedData-- 执行远程服务器的存储过程,进行一下更新操作
    ② select top 1 * into tempTable1 from PENDATASOURCE( ''SQLOLEDB'',''Data Source=XXX.XXX.XXX.XXX;User ID=XX;Password=XX;'' ).dbname.dbo.TblTable1 --再把数据拿到本地
    ③ 再更新本地tempTable1的数据
    这样操作的话,它会提示无法使用DTC,你看能不能让它不使用DTC。
    我这里只是举个例子,所以不要管逻辑上的问题,不用讨论有没有其他方法实现。我只是想知道怎么样才让它不使用DTC。
      

  3.   

    select top 1 * into tempTable1 from PENDATASOURCE( ''SQLOLEDB'',''Data Source=XXX.XXX.XXX.XXX;User ID=XX;Password=XX;'' ).dbname.dbo.TblTable1 这个要事务的
      

  4.   

    高手们,帮帮忙,支支招。
    还有如何判断一个服务器有么有开DTC服务