我是SQL Server这个世界的新手,我接到一个任务是合并两个相同的SQL数据库(SQL Server2000)中的数据表,我在两个数据库中都有相同的结构。这个想法是在新的数据表(database2)中合并所有旧的数据表,直到2020年7月(database1)。
我认为这是一项非常简单的活动,但因为我没有使用SQL Server的经验。你能帮帮我吗?
我需要更新SQL数据库中的表,我的SQL数据库每10分钟收集一次数据。我粘贴在下面的旧数据库(数据到2020年7月31日),新数据库(数据在2020年8月10日之后)和结果新数据库+旧数据库。
Old DB
Time ActivePower
31-07-2020 23:40:00 19127100
31-07-2020 23:50:00 19127094
1/8/2020 0:00 NULL
1/8/2020 0:10 NULL New DB
Time ActivePower
31-07-2020 23:40:00 NULL
31-07-2020 23:50:00 NULL
1/8/2020 19127086
1/8/2020 0:10 19127078New DB + Old DB
Time ActivePower
31-07-2020 23:40:00 19127100
31-07-2020 23:50:00 19127094
1/8/2020 19127086
1/8/2020 0:10 19127078

发布于 2020-10-28 16:07:05
按照您的示例并假设您正在合并两个名为" OldDB“和" NewDB”的表(而不是数据库)和两个名为Time和Time的列,其中Time是每个表上的唯一标识符,您将需要运行两个单独的SQL语句( UPDATE和INSERT)来将数据从OldDB迁移到NewDB(注意:如果您有SQL Server2008或更高版本,这将通过一个SQL MERGE语句来完成)。
update newdb set newdb.activepower = olddb.activepower
from newdb
inner join olddb on newdb.time = olddb.time
where newdb.activepower is null;
insert into newdb
select olddb.* from olddb
left join newdb on newdb.time = olddb.time
where newdb.time is null;附加注意:这还假设您只更新当前没有ActivePower值的NewDB记录。
https://stackoverflow.com/questions/64557216
复制相似问题