SQL Server两个数据库间表列差异查询方法咨询
2026-5-20
找出SQL Server两个数据库表列差异的实用方法
#
我处理过很多类似的schema对比需求,针对你要找 旧数据库有但新数据库缺失的列 这个核心诉求,下面几个方法亲测好用:
1. 用系统视图编写自定义查询(最灵活,无需额外工具) #
直接利用SQL Server的系统视图跨库查询,精准筛选差异。把下面脚本里的
OldDatabaseName
和
NewDatabaseName
替换成你的实际库名即可:
SELECT
t1.table_schema AS 表架构,
t1.table_name AS 表名,
c1.column_name AS 缺失的列名,
c1.data_type AS 列数据类型,
c1.is_nullable AS 是否允许为空
OldDatabaseName.INFORMATION_SCHEMA.COLUMNS c1
OldDatabaseName.INFORMATION_SCHEMA.TABLES t1 ON c1.table_schema = t1.table_schema AND c1.table_name = t1.table_name
LEFT JOIN
NewDatabaseName.INFORMATION_SCHEMA.COLUMNS c2 ON c1.table_schema = c2.table_schema
AND c1.table_name = c2.table_name
AND c1.column_name = c2.column_name
WHERE