如何使用另一个数据库的表中的值更新表

时间:2018-06-19 04:20:47

标签: sql sql-server

我正在使用SQL Server Management Studio和SQL Server的新手。

我有2个数据库,Test1Test2Test1Test2都有一个表Email,它们的设计相同。

但是,Test2中的数据已过时,Test1中的数据是最新的。

我想做的是用Test2.dbo.email中的数据替换Test1.dbo.email中的所有内容。

最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

TRUNCATE TABLE Test2.oldtable;

INSERT INTO Test2.oldTable (email, name, whatever) 
    SELECT email, name, whatever 
    FROM Test1.newtable

答案 1 :(得分:2)

在sql-server中,我总是使用update T set ... from (select .. ) T

因为我可以仔细检查数据。

脚本像这样:

update T
set email = newemail
from (
    select T1.email,T2.email newemail from Test1..email T1
    left join Test2..email T2 on T1.name = T2.name
    where T1.name is not null
) T