Heim > Datenbank > MySQL-Tutorial > Wie finde ich Fremdschlüsselreferenzen mithilfe des information_schema von SQL Server?

Wie finde ich Fremdschlüsselreferenzen mithilfe des information_schema von SQL Server?

Linda Hamilton
Freigeben: 2025-01-02 19:17:39
Original
342 Leute haben es durchsucht

How to Find Foreign Key References Using SQL Server's information_schema?

Fremdschlüsselreferenz aus information_schema in SQL Server abrufen

Frage:

In SQL Server , wie können Sie den referenzierten Tabellen- und Spaltennamen ermitteln, der einem Fremden zugeordnet ist? Schlüssel?

Antwort:

Das information_schema stellt wertvolle Metadaten über Datenbankobjekte bereit, einschließlich Fremdschlüsselbeziehungen. Um die referenzierten Tabellen- und Spalteninformationen abzurufen, können Sie die folgende Abfrage verwenden:

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 
Nach dem Login kopieren

Zusätzliche Überlegungen:

  • Eindeutige Einschränkungen: Information_schema verfolgt keine Indizes, sondern nur eindeutige Einschränkungen. Um Fremdschlüssel basierend auf eindeutigen Indizes zu finden, können Sie proprietäre Microsoft-Tabellen wie sys.foreign_keys und sys.key_constraints abfragen.
  • Proof-Test: Der bereitgestellte Edge-Case-Test zeigt, wie man richtig vorgeht Identifizieren Sie referenzierte Tabellen- und Spalteninformationen in verschiedenen Szenarien mit Fremdschlüsseleinschränkungen und eindeutigen Indizes.

Das obige ist der detaillierte Inhalt vonWie finde ich Fremdschlüsselreferenzen mithilfe des information_schema von SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage