关于分布式事务,大虾来!
小弟准备作一个在2个服务器上的数据自动备份的存储过程(用JOB实现)。在不用MSDTS时,可以完成备份,可是使用了MSDTS之后,就开始报错,到底是怎么回事呀?(这两个服务器上的MSDTS已经启动。)
/******************没有使用MSDTS时,一切正常。SQL语句是:*********************/
SET @sqlStr = 'INSERT INTO UpLog_Temp
SELECT a.* FROM OPENROWSET(''SQLOLEDB'', ''192.168.50.101''; ''sa''; ''sa'',
''SELECT top 2 * FROM neospac_new.dbo.uplog
where YEAR(CreateTime)='+ CAST(YEAR(GETDATE()) AS varchar(4))+
' AND MONTH(CreateTime)='+CAST(MONTH(GETDATE()) AS varchar(4))+ '
AND DAY(CreateTime)=' +CAST(DAY(GETDATE()) AS varchar(4))+''') AS a'
EXECUTE(@sqlStr)
/******************使用MSDTS后,开始报错。SQL语句是:************************/
EXEC sp_addlinkedserver 'HYTEST', '','SQLOLEDB','neospac'
exec sp_addlinkedsrvlogin 'HYTEST','false',null,'sa','sa'
SET REMOTE_PROC_TRANSACTIONS ON
BEGIN DISTRIBUTED TRANSACTION
SET @sqlStr = 'INSERT INTO DownLog_Temp
SELECT top 2 * FROM HYTEST.neospac_new.dbo.downlog
where YEAR(CreateTime)='+ CAST(YEAR(GETDATE()) AS varchar(4))+
' AND MONTH(CreateTime)='+CAST(MONTH(GETDATE()) AS varchar(4))+ '
AND DAY(CreateTime)=' +CAST(DAY(GETDATE()) AS varchar(4))
EXECUTE(@sqlStr)
COMMIT TRANSACTION