Ich arbeite an einer Entwicklung mit über 700 Tabellen. Ich muss eine Liste aller verwandten Tabellen zu einer bestimmten Tabelle sehen. Kannst du eine App empfehlen, die so etwas bieten kann?Alle verwandten Tabellen zu einer gegebenen Tabelle finden
Antwort
Wenn Ihre Datenbank die Informationen Schema Ansichten (die meisten tun) unterstützt, können Sie diese Abfrage ausführen:
SELECT
c.CONSTRAINT_NAME,
cu.TABLE_NAME AS ReferencingTable, cu.COLUMN_NAME AS ReferencingColumn,
ku.TABLE_NAME AS ReferencedTable, ku.COLUMN_NAME AS ReferencedColumn
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS c
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
ON cu.CONSTRAINT_NAME = c.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE ku
ON ku.CONSTRAINT_NAME = c.UNIQUE_CONSTRAINT_NAME
Dies wird Ausgabe eine Liste aller Referenzrandbedingungen (Fremdschlüssel), die Quelle (Referenzierung) Tabelle/Spalte und Primärschlüssel (referenzierte Tabelle/Spalte).
Wenn Sie Referenzen sehen möchten auf einen spezifischen Tabelle, fügen Sie einfach:
WHERE ku.TABLE_NAME = 'SomeTable'
Ist es möglich, einen einzelnen Datensatz und alle zugehörigen Datensätze auf diese Weise in SQL Server auszuwählen? – codemonkeyliketab
@codemonkeyliketab die wichtigen Fragen stellend – Kristopher
auf dem Datenbankprodukt Je sollten Sie in der Lage sein, die INFORMATION_SCHEMA
Ansichten zur Abfrage etwa so:
Select FK.TABLE_SCHEMA, FK.TABLE_NAME
From INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS As RC
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As PK
On PK.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As FK
On FK.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
Where PK.TABLE_SCHEMA = 'dbo'
And PK.TABLE_NAME = '<target table name>'
MS Visio Pro kann eine reverse engineering ein Datenbankschema für eine Vielzahl von Datenbanken (über ODBC) und bietet ein Diagramm, das sehr flexibel ist.
Hinweis: Unabhängig davon, welches System Sie verwenden, möchten Sie nicht alle 700 Tabellen auf einmal erfassen. Versuchen Sie, mehrere Diagramme logisch gruppiert und getrennt zu erstellen. Hoffentlich wird es viele solcher Gruppierungen in einer so großen Datenbank geben.
Leider wurde dieses tolle Feature im Jahr 2013 fallen gelassen. 2010 war die letzte Version mit ihm. – jleach
Sie können dies versuchen:
SELECT *
FROM
KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'your_table_name'
AND REFERENCED_COLUMN_NAME = 'your_column_id'
AND TABLE_SCHEMA = 'your_database_name';
Einfache und einfachste Lösung, die Tabellen der angegebenen Tabelle mit eingebauter Prozedur zu erhalten.
exec sp_fkeys 'Your_PK_TABLE_NAME'
Große Antwort ... – brijrajsinh
Falsche Syntax in der Nähe von 'GO'. Wo gehe ich hier falsch? –
@Marimba, bitte entfernen Sie die Go; aus Anweisung und ausführen. –
- 1. Finden Sie alle Submatrizen einer gegebenen Matrix
- 2. Verknüpfen Sie alle verwandten Tabellen in SQLAlchemy
- 3. Um alle wiederholenden Teilstrings in einer gegebenen Zeichenfolge zu finden
- 4. Entity Model und Bindung Label zu einer nicht verwandten Tabelle
- 5. alle Beziehungen finden mit einem gegebenen Knoten
- 6. Finden Sie alle Kombinationen einer gegebenen Reihe von Zahlen
- 7. Wie finden Tabellen mit Fremdschlüssel zu einer Tabelle in Oracle?
- 8. Löschen Sie alle verwandten Datensätze aus mehreren Tabellen
- 9. SQL löschen aus verwandten Tabellen
- 10. Postgres: Ermitteln einer Gesamtzahl von verwandten basierend auf einer Bedingung aus einer verwandten Tabelle
- 11. Finde alle Subsequenzen einer gegebenen Zeichenkette
- 12. Gibt es eine Möglichkeit, eine Beziehung zwischen zwei nicht verwandten Tabellen durch Fremdschlüssel zu finden?
- 13. MySQL - Sammeln verwandten Zeilen aus einer anderen Tabelle
- 14. mysql Abfrage, um aus verwandten Tabellen zweimal zu zählen
- 15. Datenmodellierung mehrerer Tabellen desselben Typs in einer einzigen Tabelle, um alle Tabellen in einer einzigen Tabelle zu aggregieren
- 16. Löschen eines Datensatzes aus Tabelle und alle anderen assoziierten Tabellen
- 17. Finden von k nächsten Nummern zu einer gegebenen Nummer
- 18. Wie finden Sie alle möglichen Teilmengen eines gegebenen Arrays?
- 19. selecting selbe Spaltenwerte aus nicht verwandten Tabellen
- 20. Gut alle Zeichenkombinationen mit einer gegebenen Länge
- 21. Regex, um alle Wörter außer einer gegebenen Liste zu entsprechen
- 22. Mongoose finden Sie alle in der gegebenen Liste von Abfragen
- 23. Abfrage, um alle Tabellen mit Datumsspalten darin zu finden
- 24. Wie finden Sie alle Permutationen eines gegebenen Wortes in einem gegebenen Text?
- 25. Laravel Auftrag von verwandten Tabelle
- 26. Index einer gegebenen Zahl in einer Liste finden python3
- 27. Löschen einer Zeile in einer Tabelle mit Primärschlüssel und verwandten Zeilen in einer anderen Tabelle mit Fremdschlüssel
- 28. Kombinieren von zwei nicht verwandten Tabellen
- 29. Finden von Punkten auf einer Linie mit einer gegebenen Entfernung
- 30. Tabellen ohne Daten finden
Welche Version/Marke von SQL? Wenn es von Microsoft ist, kann Management Studio ein Diagramm erstellen ... –