如何从本地SQL Server表更新链接表列



我有一个本地SQL Server表和一个远程链接的MySQL表。

我需要从本地表中提取电子邮件地址来更新远程。

此T-SQL语句适用于单个更新:

UPDATE openquery(SKYCOMLINK2, 'select tng_id, tng_account, tng_email from user_list where tng_account = 12345 and tng_status = ''A''') 
SET tng_email = 'blah@blah.com';

我想做的是,对于每个状态为"a"的RemoteTable记录,我想从本地SQL Server表中提取一个电子邮件地址(例如单个记录):

select email 
from LocalTable 
where id = 12345

因此,在英语中:对于RemoteTable中的每个活动记录(可以是倍数),在LocalTable中查找相同帐号的相应记录(每个帐号一条记录),并从中提取电子邮件地址以填充RemoteTable中的匹配记录。如果更容易的话,LocalTable可以是如下的驱动程序(准SQL英语):

update RemoteTable 
set RemoteTable.email = LocalTable.email 
where RemoteTable.accountNum = LocalTable.accountNum 
  and LocalTable.status = 'a' 
  and RemoteTable.status = 'a'

我该怎么做?提前谢谢。

如果MySQL没有四个部分名称,并且SQL Server不接受没有一个部分的引用,则可以尝试serverName.databaseName.tableName。将架构名称留空意味着默认架构。然而,根据这个问题,这可能不适用于所有版本的SQL Server、MySQL和ODBC驱动程序。

这里还有一个问题提供了多种解决问题的方法:我必须使用OpenQuery从SQL Server查询MySQL链接服务器吗?

相关内容

  • 没有找到相关文章

最新更新