1

嗨,我被困在这里需要你的建议。我有一个带有多个数据库的服务器。现在我想映射一个 1 db 表中的数据是否等于另一个具有相同表名的 db 中的数据

任何人都可以建议如何做到这一点?提前感谢

4

2 回答 2

1
select * from db1.table1 t1
full outer join db2.table2 t2 on t1.id = t2.id
where t1.id <> t2.id
or t1.col2 <> t2.col2 or ...
于 2012-05-03T10:48:06.757 回答
0

取决于你需要映射什么。如果您只想知道主键的差异,我会尝试在 PK 上进行完全连接,这样它会告诉您存在于 A 但不存在于 B 上的记录以及存在于 B 但不存在于 A 上的记录。像这样:

create table DB_A(id int)
create table DB_B(id int)

insert into DB_A values (1)
insert into DB_A values (2)

insert into DB_B values (2)
insert into DB_B values (3)

select DB_A.ID as 'Exists on A but not on B', DB_B.id as  'Exists on B but not on A'
from DB_A full join DB_B on DB_A.id=DB_B.id 
where DB_A.id is null or DB_B.id is null  

如果您需要的不仅仅是比较所有列的值,我建议您使用数据比较工具。只使用 SQL 就不会那么困难了

于 2012-05-03T10:56:31.640 回答