首页 app开发 正文

两个数据库怎么进行比对(两个数据表比对怎么做)

app开发 56
本篇文章给大家谈谈两个数据库怎么进行比对,以及两个数据表比对怎么做对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 怎么对比两个数据库里面两张表的内容 如果两个数据库可以建立dblink,那么通过dblink就可以像在一个数据库一样去对比。如果不能建立dblink,那么就只能导出两行表,通过spool导出就可以。然后通过系统级别的命令去比对。我记得linux是有比较两个文件不同行的功能的。

本篇文章给大家谈谈两个数据库怎么进行比对,以及两个数据表比对怎么做对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

怎么对比两个数据库里面两张表的内容

如果两个数据库可以建立dblink,那么通过dblink就可以像在一个数据库一样去对比。

如果不能建立dblink,那么就只能导出两行表,通过spool导出就可以。然后通过系统级别的命令去比对。我记得linux是有比较两个文件不同行的功能的。

如果认为两个都导出比较麻烦,那就导出一个,在导入另外一个库(注意变换名字,否则表明重复就麻烦了),然后再对比。

如何对比两个数据库差异

构建两个临时表,将两个数据库结构信息导入。

create Table #t1

(

ID Int Identity(1,1) Not Null Primary Key,

tablename nvarchar(50) NULL,

columnName nvarchar(50) NULL,

columnIndex int null,

columnType nvarchar(50) NULL

)

use 数据库1

insert into #t1

create Table #t2

(

ID Int Identity(1,1) Not Null Primary Key,

tablename nvarchar(50) NULL,

columnName nvarchar(50) NULL,

columnIndex int null,

columnType nvarchar(50) NULL

)

//开始比较

use 数据库2

insert into #t2

SELECT

SO.name as '表名',

SC.name as '表列名',

SC.colid as '索引',

ST.name as '类型'

FROM

sysobjects SO, -- 对象表

syscolumns SC, -- 列名表

systypes ST -- 数据类型表

WHERE

SO.id = SC.id

AND SO.xtype = 'U' -- 类型U表示表,V表示视图

AND SO.status = 0 --加一个条件:SO.status = 0,否则会将系统的临时表显示出来

AND SC.xtype = ST.xusertype

ORDER BY

SO.name, SC.colorder

go

//查询出 在t1 里有, t2 里没有的字段,查询列出来。

select * from

(

select tablename,columnName,columnType from #t1 where tablename like '%EMS_%'

EXCEPT

select tablename,columnName,columnType from #t2 where tablename like '%EMS_%'

) as c

order by tablename

比较两个数据库中表和字段的差异

-- 比较两个数据库中表的差异

-- u表,p存储过程,v视图

-- INTFSIMSNEW新库,INTFSIMS旧库

SELECT NTABLE = A.NAME, OTABLE = B.NAME

FROM INTFSIMSNEW..SYSOBJECTS A

LEFT JOIN INTFSIMS..SYSOBJECTS B

ON A.NAME = B.NAME

WHERE ISNULL(B.NAME, '') = ''

AND A.XTYPE = 'U'

UNION ALL

SELECT NTABLE = B.NAME, OTABLE = A.NAME

FROM INTFSIMS..SYSOBJECTS A

LEFT JOIN INTFSIMSNEW..SYSOBJECTS B

ON A.NAME = B.NAME

WHERE ISNULL(B.NAME, '') = ''

AND A.XTYPE = 'U'

ORDER BY 1, 2

-- 比较两个数据库中每个表字段的差异

SELECT

表名A = CASE WHEN ISNULL(A.TABLENAME, '') '' THEN A.TABLENAME ELSE B.TABLENAME END,

字段名A = A.FIELDNAME,

字段名B = B.FIELDNAME,

顺序= A.FIELDSNO,

说明= CASE WHEN A.FIELDTYPE B.FIELDTYPE THEN '类型: ' + A.FIELDTYPE + '--' + B.FIELDTYPE

WHEN A.FIELDSNO B.FIELDSNO THEN '顺序: ' + str(A.FIELDSNO) + '--' + str(B.FIELDSNO)

WHEN A.LENGTH B.LENGTH THEN '长度: ' + str(A.LENGTH) + '--' + str(B.LENGTH)

WHEN A.LENSEC B.LENSEC THEN '小数位: ' + str(A.LENSEC) + '--' + str(B.LENSEC)

WHEN A.ALLOWNULL B.ALLOWNULL THEN '允许空值: ' + str(A.ALLOWNULL) + '--' + str(B.ALLOWNULL)

END

FROM (SELECT

TABLENAME = B.NAME,

FIELDNAME = A.NAME,

FIELDSNO = A.COLID,

FIELDTYPE = C.NAME,

LENGTH = A.LENGTH,

LENSEC = A.XSCALE,

ALLOWNULL = A.ISNULLABLE

FROM INTFSIMSNEW..SYSCOLUMNS A

LEFT JOIN INTFSIMSNEW..SYSOBJECTS B

ON A.ID = B.ID

LEFT JOIN INTFSIMSNEW..SYSTYPES C

ON A.XUSERTYPE = C.XUSERTYPE

WHERE B.XTYPE = 'U') A

FULL JOIN (SELECT

TABLENAME = B.NAME,

FIELDNAME = A.NAME,

FIELDSNO = A.COLID,

FIELDTYPE = C.NAME,

LENGTH = A.LENGTH,

LENSEC = A.XSCALE,

ALLOWNULL = A.ISNULLABLE

FROM INTFSIMS..SYSCOLUMNS A

LEFT JOIN INTFSIMS..SYSOBJECTS B

ON A.ID = B.ID

LEFT JOIN INTFSIMS..SYSTYPES C

ON A.XUSERTYPE = C.XUSERTYPE

WHERE B.XTYPE = 'U') B

ON A.TABLENAME = B.TABLENAME

AND A.FIELDNAME = B.FIELDNAME

WHERE ISNULL(A.TABLENAME, '') = ''

OR ISNULL(B.TABLENAME, '') = ''

OR A.FIELDTYPE B.FIELDTYPE

OR A.FIELDSNO B.FIELDSNO

OR A.LENGTH B.LENGTH

OR A.LENSEC B.LENSEC

OR A.ALLOWNULL B.ALLOWNULL

ORDER by 1, 4

如何比较两张数据库表的内容

两个表的数据循环显示.

如果表一的和表二的相同,就加一个颜色值,在html中让显示的字符加上颜色就可以区分了.

如果要分部分显示,可以用数组暂存或数据库暂存数据,将相同的或不同的暂存下来,显示完一样后再显示另一样.

如何:比较两个数据库的数据

比较的数据库分别称为“源”和“目标”。说明:数据库项目不包含任何数据。因此,在数据比较中数据库项目不能作为源或目标。比较数据时,会生成数据操作语言 (DML) 脚本,使用该脚本可以通过更新目标数据库中的某些或全部数据来同步不同的数据库。完成数据比较后,结果会出现在 Visual Studio 的“数据比较”窗口中。有关更多信息,请参见比较数据库数据概述。说明:还可以比较两个数据库的架构或同一数据库的两个版本的架构。有关更多信息,请参见如何:比较两个数据库的架构。比较数据库数据比较两个数据库的数据在“数据”菜单上指向“数据比较”,然后单击“新建数据比较”。将出现“数据比较”向导。而且,会打开“数据比较”窗口,并且 Visual Studio 会自动为其指定一个名称,如 DataCompare1。在“数据比较”向导中,确定源数据库和目标数据库。如果“源数据库”列表或“目标数据库”列表为空,请单击“新建连接”。在“连接属性”对话框中,确定数据库所驻留的服务器以及连接数据库时将要使用的身份验证类型。然后,单击“确定”关闭“连接属性”对话框并返回到“数据比较”向导。在“数据比较”向导的第一页上,验证每个数据库的信息均是正确的,指定要在结果中包括的记录,然后单击“下一页”。“数据比较”向导的第二页将出现并显示数据库中表和视图的层次结构列表。说明:表和视图必须满足两个条件才会出现在列表中。第一个条件是,源数据库对象和目标数据库对象的架构必须匹配。第二个条件是,该列表中仅显示具有主键或唯一键的表和视图。如果没有同时满足这两个条件的表或视图,则该列表将为空。选中要比较的表和视图所对应的复选框。或者可以展开数据库对象的节点,然后选中要比较的对象中的列所对应的复选框。说明:要比较的每个表或视图都必须定义匹配的主键、匹配的索引或唯一的键。否则,会从将比较的表的列表中将该表移除。对于一些对象而言,可以使用“比较键”列指定要作为数据比较依据的键。例如,可以指定使数据比较依据主键列还是依据其他(唯一可标识)键列。单击“完成”。比较开始。说明:通过打开“数据”菜单,单击“数据比较”,再单击“停止数据比较”,可以停止正在进行的数据比较操作。完成比较后,可以查看两个数据库之间的数据差异。还可以更新目标数据库中的部分或全部数据,以与源数据库中的数据匹配。有关更多信息,请参见如何:查看数据差异和如何:同步数据库数据。

数据库如何比库,就是两个数据库如何比较数据库结构。

请参阅以下文章,里面详细的讲述,如果比对数据表的结构问题

数据库结构对比

如果有疑问,再次沟通,谢谢!

两个数据库怎么进行比对的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于两个数据表比对怎么做、两个数据库怎么进行比对的信息别忘了在本站进行查找喔。

两个数据库怎么进行比对 两个数据库怎么对比差异两个数据库怎么合并两个数据库怎么关联两个数据库怎么连接两个数据库怎么互相导入数据库怎么查询两个表数据库怎么将两个表结合数据库怎么同时选中两行数据库怎么同时显示两个表数据库怎么查询两个条件
扫码二维码