我正在使用SQL Server Management Studio和SQL Server的新手。
我有2个数据库,Test1
和Test2
。 Test1
和Test2
都有一个表Email
,它们的设计相同。
但是,Test2
中的数据已过时,Test1
中的数据是最新的。
我想做的是用Test2.dbo.email
中的数据替换Test1.dbo.email
中的所有内容。
最好的方法是什么?
答案 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