SQL Server 2005数据库比较

SQL Server 2005数据库比较,sql,sql-server,database,Sql,Sql Server,Database,我正在做一个数据集中的项目。我必须将两个数据库中的数据传输到第三个新创建的主数据库中。现有数据库中包含相同类型的数据,表是相同的,等等。但在此之前,我需要检查现有两个数据库中的主表是否相同,即列名,两个数据库中两个相同表的编号等相同。 例如,两个数据库都有一个名为SROMaster的表。我需要检查db1中的SROMaster是否与db2中的SROMaster包含相同的列。有人能帮我吗?谢谢 要检查单个表,只需在两个数据库上发出convert table To Create script命令,并手

我正在做一个数据集中的项目。我必须将两个数据库中的数据传输到第三个新创建的主数据库中。现有数据库中包含相同类型的数据,表是相同的,等等。但在此之前,我需要检查现有两个数据库中的主表是否相同,即列名,两个数据库中两个相同表的编号等相同。
例如,两个数据库都有一个名为SROMaster的表。我需要检查db1中的SROMaster是否与db2中的SROMaster包含相同的列。有人能帮我吗?谢谢

要检查单个表,只需在两个数据库上发出convert table To Create script命令,并手动比较结果即可

您可能还需要使用一些判断:什么是兼容的,即列的顺序是否相同?根据你的计划,这对你来说重要吗

如果要比较大量的表,则不希望手动进行比较。有一些工具可以实现这一点,或者您可以通过在系统目录中运行proc来实现


考虑到您正在问这个问题,我怀疑您最好寻找一个现有的工具来完成繁重的表格比较。不过,这并不被视为堆栈溢出问题。

不确定您使用的是什么平台/语言-但在任何情况下,要测试给定的表是否存在,您可以使用此T-SQL执行此任务:

SELECT t.*
FROM sys.tables t
WHERE t.Name = 'SROMaster'
这将返回一行,其中包含关于该表的所有信息(如果该表存在),否则无法返回任何信息

拥有表格后,可以使用以下方法检查表格中有哪些列:

SELECT c.*
FROM sys.columns c
INNER JOIN sys.tables t ON c.object_id = t.object_id
WHERE t.Name = 'SROMaster'
ORDER BY c.column_id

您将返回一组包含列信息的行数据集-比较这两个列表,看看两个表的SROMaster表中是否有相同的列。

您希望从哪个平台/语言执行此检查?T-SQL?C还有别的吗?您能否从运行比较的平台连接到这两个数据库?