数据库表对比
1. Sql数据库表单数据对比
select a.* from
(select * from tab1 a where backDate=Convert(date,GETDATE())) a
inner join (select * from tab1 where where backDate=DateAdd(day,-1,Convert(date,GETDATE()))) b
on a.Id=b.id and (a.price <>b.price or a.count<>b.count)
试下吧,on后而我预设的几个匹配字段,具体根据你的列来确定
2. 两个数据库中相同表的对比sql语句怎么写
select
base.name, base.year
, a.成绩 as [a表成绩]
, b.成绩 as [b表成绩]
, case
when a.成绩 is null then 'a表中不存在'
when b.成绩 is null then 'b表中不存在'
when a.成绩=b.成绩 then '成功'
else '差异' end as 比较结果
from (
select name, year from tb_a
union
select name, year from tb_b
) as base
left join tb_a as a on a.name=base.name and a.year=base.year
left join tb_b as b on b.name=base.name and b.year=base.year
3. 怎样把两个不同数据库里的表对比
是查找temp1和temp2表明不相同的么?如果仅仅是查找表明不同的那好办,一条语句就可以搞定。
Select TABLE_NAME FROM temp1.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' where TABLE_NAME not in(
Select TABLE_NAME FROM temp2.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE')
如果还要查找数据表结构的不同,可以试下这个语句
Select temp1.dbo.sysobjects.name as Table_name, temp1.dbo.syscolumns.name AS Column_name
FROM temp1.dbo.syscolumns INNER JOIN
temp1.dbo.sysobjects ON temp1.dbo.syscolumns.id = temp1.dbo.sysobjects.id
Where (temp1.dbo.sysobjects.xtype = 'u') AND (NOT (temp1.dbo.sysobjects.name LIKE 'dtproperties'))
--可以查询数据库中所有的表和字段的数据,然后两个表的比较就行了。我就不写了
4. SQL如何对2个表的数据进行对比
a表与b表通过哪个字段可以关联起来,关系是1对多还是多对多
select * from tablesA a
left join tablesB b on a.xx=b.xx
where a.xx1=b.xx1
类似这种
5. 怎样比较两个数据库的表结构
建模工具 比如powerDesigner,逆向工程,创建数据库的物理模型,一目了然
6. sql数据库中的两个表的记录进行比较
问题补充:
select N'ab',N'ab',N'bc',N'bc',N'abc',N'ab',N'ab',N'ac',N'abc',N'ab'
select N'ab',N'ab',N'bc',N'bc',N'abc',N'ab',N'ab',N'ac',N'abc',N'ab'
微软专家吴熹
能否解释一下上面的语句是什么意思,因为我要比较几万条记录,不会要这样每条都写入程序吧!
A表中有几万条记录,B表中有800条记录,A表中的每条记录和B表中的每条记录进行比较,A表的每条记录和B表800条记录比较后把比较结果写到A表记录新增的800条字段里进行存储。
---------------------------------
以上脚本是生成测试数据,加上N''--用生成nvarchar符号,有特殊字符时可加上。
两个表要通过主健关连 加上条件 where a.ID=b.ID,不加条件时,需要保证A表只有一条数据.
没主健时多对多关系会产生笛卡尔结果集
--> --> (Roy)生成测试数据
declare @A table([1] nvarchar(1),[2] nvarchar(1),[3] nvarchar(1),[4] nvarchar(1),[5] nvarchar(1),[6] nvarchar(1),[7] nvarchar(1),[8] nvarchar(1),[9] nvarchar(1),[10] nvarchar(1))
Insert @A
select N'a',N'c',N'a',N'b',N'a',N'b',N'c',N'c',N'a',N'b'
--> --> (Roy)生成测试数据
declare @B table([1] nvarchar(2),[2] nvarchar(2),[3] nvarchar(2),[4] nvarchar(2),[5] nvarchar(3),[6] nvarchar(2),[7] nvarchar(2),[8] nvarchar(2),[9] nvarchar(3),[10] nvarchar(2))
Insert @B
select N'ab',N'ab',N'bc',N'bc',N'abc',N'ab',N'ab',N'ac',N'abc',N'ab'
Select a.*,
case when b.[1] like '%'+a.[1]+'%' then 1 else 0 end+
case when b.[2] like '%'+a.[2]+'%' then 1 else 0 end+
case when b.[3] like '%'+a.[3]+'%' then 1 else 0 end+
case when b.[4] like '%'+a.[4]+'%' then 1 else 0 end+
case when b.[5] like '%'+a.[5]+'%' then 1 else 0 end+
case when b.[6] like '%'+a.[6]+'%' then 1 else 0 end+
case when b.[7] like '%'+a.[7]+'%' then 1 else 0 end+
case when b.[8] like '%'+a.[8]+'%' then 1 else 0 end+
case when b.[9] like '%'+a.[9]+'%' then 1 else 0 end+
case when b.[10] like '%'+a.[10]+'%' then 1 else 0 end as 新列
from @A a,@B b
(1 行受影响)
1 2 3 4 5 6 7 8 9 10 新列
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----------
a c a b a b c c a b 7
(1 行受影响)
7. 如何对两个数据库中的表进行比较
sql
server
和mysql可以这样:
use
库1;
go
insert
A表(要插入的字段列表)
select
要插入的字段列表
from
库2.B表
;
--注意字段的回对应....
oracle
可以使用
exp导出
然后答imp导入
8. 如何比较两张数据库表的内容
两个表的数据复循环显示制.
如果表一的和表二的相同,就加一个颜色值,在html中让显示的字符加上颜色就可以区分了.
如果要分部分显示,可以用数组暂存或数据库暂存数据,将相同的或不同的暂存下来,显示完一样后再显示另一样.
9. 两个数据库表怎么对比
你把数据导出到excel,带表头,然后用公式或者vba就可以比对了