同じサーバー上に 21 個の DB がありますが、それらは同じスキーマを持つことが「想定」されています (現時点ではスキーマをテーブル スキーマのみに制限しています) が、そうではありません。私の環境では、コンプライアンス ルールに従ってツール/アプリケーションをインストールできません。私が考えることができる唯一の方法は、21 個の DB すべてのスキーマを Excel で取得して比較することですが、面倒です。
21 個すべての DB のスキーマを比較し、違いを強調できる T-SQL の開発を誰かが教えてくれますか?
これらは私が必要とする列です: Table_Name 、列名、データ型、最大長、is_nullable、is_replicated、主キー
次の T-sql は、これを情報として引き出します。この情報を 21 の DB と比較するにはどうすればよいかについてのアイデアが必要です
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
出発点が必要です