查询本来就可以不用事务啊 默认情况下,整个存储过程都当作一个事务的吗?还有邹大哥你试一试能不能实现不打开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。
select top 1 * into tempTable1 from PENDATASOURCE( ''SQLOLEDB'',''Data Source=XXX.XXX.XXX.XXX;User ID=XX;Password=XX;'' ).dbname.dbo.TblTable1 这个要事务的
默认情况下,整个存储过程都当作一个事务的吗?还有邹大哥你试一试能不能实现不打开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。
还有如何判断一个服务器有么有开DTC服务