Sql 是否可以使用同义词更新远程表?
使用同义词更新远程表时,我的更新不会停止执行,也不会失败 例如,我有:Sql 是否可以使用同义词更新远程表?,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,使用同义词更新远程表时,我的更新不会停止执行,也不会失败 例如,我有: USE [CRM_Staging] GO /****** Object: Synonym [dbo].[CRM_OpportunityBase] Script Date: 05/27/2014 16:22:32 ******/ CREATE SYNONYM [dbo].[CRM_OpportunityBase] FOR [CRMPRODDB].[Training_MSCRM].[dbo].[OpportunityB
USE [CRM_Staging]
GO
/****** Object: Synonym [dbo].[CRM_OpportunityBase] Script Date: 05/27/2014 16:22:32 ******/
CREATE SYNONYM [dbo].[CRM_OpportunityBase] FOR [CRMPRODDB].[Training_MSCRM].[dbo].[OpportunityBase]
GO
我在这里使用它:
update o
set o.createdon=s.createdon
,o.modifiedon=s.modifiedon
,o.createdby = (case when s.createdby is not null then s.createdby else o.createdby end)
,o.modifiedby = (case when s.modifiedby is not null then s.modifiedby else o.modifiedby end)
from crm_opportunitybase o
join Opportunity s
on o.opportunityid=s.OpportunityId
但是,查询不会停止执行。这根本没用
如果您进入链接服务器并运行它,那么它运行时不会出现问题
是否可以使用同义词更新远程表?同义词与此无关。更有可能的是,链接服务器上的分布式事务协调器(DTC)导致查询运行缓慢。@真的很糟糕。我该如何加速呢?这是使用链接服务器的本质。我个人使用它们的经验法则很简单,不要。如果您必须这样做,您可以尝试将必要的DML逻辑放入存储过程中,该存储过程位于目标服务器上,并且可以由其他链接服务器调用。顺便问一下,您是如何知道DTC的这一点的?@恶心,因为这是处理两台服务器之间通信的方法。