【发布时间】:2015-06-26 18:03:55
【问题描述】:
我有一个本地 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'
我该怎么做?提前致谢。
【问题讨论】:
-
通过加入 4 个部分名称进行更新
-
我已经看过 4 部分的名称,但无法弄清楚第四部分是什么。我得到了 SKYCOMLINK2.tng.user_list ... 这是链接 server.database.table 但第四个是什么?
-
它是所有者,默认是 dbo
-
dbo 的顺序在哪里?
-
我在 SSMS 中右键单击表格并选择创建选择它会显示给你。
标签: sql-server tsql updates linked-server