我在同一台服务器上有 21 个数据库,它们“应该”具有相同的架构(目前仅将架构限制为表架构),但它们没有。在我所处的环境中,我无法按照合规性规则安装任何工具/应用程序。我能想到的唯一方法是在 excel 中提取所有 21 个 DB 的模式并进行比较,但它很乏味。
有人可以指导我开发一个可以比较所有 21 个数据库的架构并突出差异的 T-SQL 吗?
这些是我需要的列: Table_Name ,列名,数据类型,最大长度,is_nullable,is_replicated,主键
下面的 T-sql 为我提取了这个信息。我需要一些关于如何比较 21 个数据库的信息的想法
SELECT a.name Table_Name, c.name 'Column Name',
t.Name 'Data type',
c.max_length 'Max Length',
c.is_nullable,a.is_replicated ,
ISNULL(i.is_primary_key, 0) 'Primary Key'
FROM Sys.tables a inner join sys.columns c
On A.object_id=C.object_id
INNER JOIN
sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN
sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
Order by 1,2
我需要一个起点