我有一个本地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-English中):
update RemoteTable
set RemoteTable.email = LocalTable.email
where RemoteTable.accountNum = LocalTable.accountNum
and LocalTable.status = 'a'
and RemoteTable.status = 'a'
我该怎么做?提前谢谢。
答案 0 :(得分:0)
如果MySQL没有四个部件名称且SQL Server不接受没有的部件名称,您可以尝试使用serverName.databaseName..tableName。将架构名称留空意味着默认架构。但是,根据this question,这可能不适用于所有版本的SQL Server,MySQL和ODBC驱动程序。
以下是提供解决问题的多种方法的另一个问题:Do I have to use OpenQuery to query a MySQL Linked Server from SQL Server?