Heim >Datenbank >MySQL-Tutorial >Wie finde ich Fremdschlüsselverweise in SQL Server mithilfe von Information_Schema?
Erhalten von Fremdschlüsselreferenzen mit dem Informationsschema von SQL Server
In SQL Server kann die Identifizierung der Tabelle und Spalte, auf die ein Fremdschlüssel verweist, wertvolle Informationen liefern zum Verständnis von Datenbeziehungen. Um diese Informationen zu erhalten, können wir die information_schema-Ansichten nutzen.
SELECT KCU1.CONSTRAINT_SCHEMA AS FK_CONSTRAINT_SCHEMA ,KCU1.CONSTRAINT_NAME AS FK_CONSTRAINT_NAME ,KCU1.TABLE_SCHEMA AS FK_TABLE_SCHEMA ,KCU1.TABLE_NAME AS FK_TABLE_NAME ,KCU1.COLUMN_NAME AS FK_COLUMN_NAME ,KCU1.ORDINAL_POSITION AS FK_ORDINAL_POSITION ,KCU2.CONSTRAINT_SCHEMA AS REFERENCED_CONSTRAINT_SCHEMA ,KCU2.CONSTRAINT_NAME AS REFERENCED_CONSTRAINT_NAME ,KCU2.TABLE_SCHEMA AS REFERENCED_TABLE_SCHEMA ,KCU2.TABLE_NAME AS REFERENCED_TABLE_NAME ,KCU2.COLUMN_NAME AS REFERENCED_COLUMN_NAME ,KCU2.ORDINAL_POSITION AS REFERENCED_ORDINAL_POSITION FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU1 ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU2 ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION
Beispiel:
Angenommen, wir haben die Tabellen T_ALV_Ref_FilterDisplay und T_AP_Ref_Customer und T_ALV_Ref_FilterDisplay verfügt über eine Fremdschlüsseleinschränkung Verweis auf T_AP_Ref_Customer.MDT_ID. Um die referenzierte Tabelle und Spalte zu finden, können wir die Abfrage ausführen:
SELECT REFERENCED_TABLE_SCHEMA, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE FK_TABLE_SCHEMA = 'dbo' AND FK_TABLE_NAME = 'T_ALV_Ref_FilterDisplay' AND FK_COLUMN_NAME = 'FA_MDT_ID';
Dies würde das folgende Ergebnis zurückgeben:
REFERENCED_TABLE_SCHEMA | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME ------------------------ | ---------------------- | ---------------------- dbo | T_AP_Ref_Customer | MDT_ID
Einschränkungen:
Beachten Sie, dass das information_schema keine Informationen über Indizes enthält. Wenn die Fremdschlüsselreferenz auf einem eindeutigen Index basiert, müssen Sie stattdessen proprietäre Microsoft-Tabellen verwenden.
Das obige ist der detaillierte Inhalt vonWie finde ich Fremdschlüsselverweise in SQL Server mithilfe von Information_Schema?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!