如何比较表列并在SQL Sever 2012中匹配它们

时间:2016-05-02 14:12:19

标签: sql sql-server database sql-server-2012

这是一项工作中的硬件分配。

我现在正在做的工作是数据库归档。我使用源数据库并使用存储过程将所有(或特定部分)数据移动到新的存档数据库中。

问题是,并非源DB中的所有列都与目标DB匹配。

如何比较数据库中缺少列的表,然后匹配它们?因此,如果源DB具有包含4列的表1并且目标DB具有仅包含2列的表1,那么如何比较表1和表,然后添加/删除列以使其彼此匹配?

SQL Server 2012 / SQL Management Studio

1 个答案:

答案 0 :(得分:0)

您可以通过查询Information_Schema.Columns或sys.Columns来比较表列。

以下查询将提供缺少列数

SELECT c2.table_name,c2.COLUMN_NAME
FROM archdb.[INFORMATION_SCHEMA].[COLUMNS] c2
WHERE table_name='archtable' and c2.COLUMN_NAME 
    not in (SELECT column_name 
    FROM orgdb.[INFORMATION_SCHEMA].[COLUMNS] 
    WHERE table_name='orgtable')

这个link将提供有关比较sql server表的方法和工具的数量的信息