0

我发现以下代码可以从另一个表更新表,

UPDATE
    Sales_Import
SET
    Sales_Import.AccountNumber = RAN.AccountNumber
FROM
    Sales_Import SI
INNER JOIN
    RetrieveAccountNumber RAN
ON 
    SI.LeadID = RAN.LeadID

但是如果这些表位于不同的服务器上,并且其中一个是本地的,我可以这样做吗?

4

5 回答 5

0

您可以使用链接服务器。在这种情况下,您应该使用格式 {server_name}.{database_name}.{schema_name}.{table_name} 来标识其他服务器上的表。

如果其中一个表(例如 RetrieveAccountNumber)在另一台服务器上(您可以将其命名为 A),并且其中一个是本地的,那么您可以将查询重写为:

UPDATE
    Sales_Import
SET
    Sales_Import.AccountNumber = RAN.AccountNumber
FROM
    Sales_Import SI
INNER JOIN
    A.{the_database_name}.{schema_name}.RetrieveAccountNumber RAN
ON 
    SI.LeadID = RAN.LeadID
于 2013-06-18T06:56:27.937 回答
0

Adham,我相信您可以转储表并将其卸载到另一个数据库中:

mysqldump -uYOUR_USER -p db-name-from tablename | mysql -uYOUR_USER -p -h server-to db-name-to

它基本上是两个串联的动作。

于 2013-06-18T06:16:38.217 回答
0

如果是 mysql,请尝试镜像(复制)。或者尝试集群。好吧,使用公共数据库链接的 Oracle 数据库已经超越了这一点

于 2013-06-18T06:16:57.447 回答
0

Oracle 具有数据库连接,允许您在一个数据库中工作,并在完全不同的服务器上连接到完全不同的数据库。SQL-Server 也有这个功能,但它被称为数据库链接。

但是,据我所知,MySQL 没有这个特性。

于 2013-06-18T06:17:22.893 回答
0

如果您想通过 SQL 查询来执行此操作,那么您需要设置链接服务器并使用类似于 Enhnaran 发布的语法。

是有关链接服务器的一般信息以及有关如何设置它的详细信息

如果您只需要这样做一次,那么您还可以考虑使用 SQL Server 导入/导出向导。

于 2013-06-18T09:24:14.013 回答