SQL从另一个表更新表

时间:2016-05-27 13:14:51

标签: sql sql-server-express

我是SQL Server的完全初学者,我已达到极限。

目前我正在使用脚本使用列从另一个表更新表。由于两个数据库都分配给了2个不同的第三方软件,因此我创建了一个UPDATE therefore.dbo.thecat51 SET num_factura = (SELECT therefore.dbo.documentos.num_factura FROM therefore.dbo.Documentos WHERE therefore.dbo.thecat51.num_albaran=therefore.dbo.documentos.num_albaran) WHERE therefore.dbo.thecat51.num_albaran = ( SELECT therefore.dbo.documentos.num_albaran FROM therefore.dbo.Documentos WHERE therefore.dbo.thecat51.num_Albaran = therefore.dbo.documentos.num_albaran) 脚本用于Windows服务器中的任务管理器,这样它每10分钟就可以更新一次。

虽然这是经过测试和运行的,但我觉得必须有一种方法可以在不必使用任务的情况下在两个数据库之间创建关系。

automaticallyAdjustsScrollViewInsets

另外,我们使用的是SQL Server Express,因此我无法创建预定作业。

2 个答案:

答案 0 :(得分:0)

您可以使用UPDATE执行INNER JOIN来执行所需的更新:

UPDATE A SET
    num_factura = B.num_factura
FROM therefore.dbo.thecat51 A
    INNER JOIN therefore.dbo.Documentos B
        ON A.num_albaran = B.num_albaran

答案 1 :(得分:0)

在两个表之间使用 try { Class.forName( "java.lang.management.ManagementFactory" ); jmxAvailable = true; } catch (Throwable t) { jmxAvailable = false; } 。当我发布这个时,你没有告诉我们你使用的是哪个RDBMS所以我会给出SQL Server和MySQL的答案:

SQL Server:

INNER JOIN

<强> MySQL的:

UPDATE t1 
SET t1.num_factura = t2.num_factura
FROM therefore.dbo.thecat51 AS t1
INNER JOIN therefore.dbo.Documentos AS t2
    ON t1.num_albaran = t2.num_albaran