Ich habe 21 DBs auf dem gleichen Server, die "das gleiche Schema haben sollen" (das Schema wird ab sofort nur auf das Tabellenschema beschränkt), aber das tun sie nicht. In der Umgebung, die ich bin, kann ich kein Tool/Anwendungen gemäß den Compliance-Regeln installieren. Der einzige Weg, der mir einfällt, ist, das Schema aller 21 DBs in Excel hochzuziehen und zu vergleichen, aber es ist langweilig.MSSQL Schema Vergleichen von T SQL
Kann mir jemand bei der Entwicklung eines T-SQL helfen, der das Schema für alle 21 DBs vergleichen und die Unterschiede hervorheben kann?
Dies sind die Spalten ich brauche: Table_Name, Spaltenname, Datentyp, Max Länge, IS_NULLABLE, is_replicated, Primary Key
Die folgende T-SQL zieht für mich in Informationen auf. Ich brauche eine Vorstellung darüber, wie kann ich diese Informationen für 21 DBs vergleichen
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
Ich brauche einen Ausgangspunkt
und markieren Sie die Unterschiede? Welche Unterschiede? – TheGameiswar
Wenn eines der 7 Felder für eine bestimmte Tabelle für die 21 DBs unterschiedlich ist - das ist ein Unterschied. Ich freue mich, wenn ich das Ergebnis für 21 DBs in eine temporäre Tabelle setzen und dann die temporäre Tabelle nach Unterschieden abfragen kann. Etwas in diesen Zeilen ... –
In Visual Studio gibt es einen Tools> Sql Server> Neuer Schemavergleich, der zwei Quellen unterscheidet. Vielleicht lohnt sich ein Blick darauf. – Phritzy