如何从另一台服务器上的另一个表更新表

时间:2013-06-18 06:11:48

标签: sql sql-server sql-update

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

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

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

5 个答案:

答案 0 :(得分:0)

Adham,我相信你可以转储表并将其卸载到其他数据库中:

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

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

答案 1 :(得分:0)

如果是mysql,请尝试镜像(复制)。 或尝试集群。 那么这一点在使用公共数据库链接的Oracle数据库中被取代了

答案 2 :(得分:0)

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

但据我所知,MySQL没有此功能。

答案 3 :(得分: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

答案 4 :(得分:0)

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

Here是关于链接服务器的一般信息,details是关于如何设置它的信息

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