Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencari Rujukan Utama Asing dalam Pelayan SQL Menggunakan Skim_Informasi?

Bagaimana untuk Mencari Rujukan Utama Asing dalam Pelayan SQL Menggunakan Skim_Informasi?

Linda Hamilton
Lepaskan: 2025-01-02 17:20:40
asal
854 orang telah melayarinya

How to Find Foreign Key References in SQL Server Using Information_Schema?

Mendapatkan Rujukan Utama Asing dengan Skema Maklumat SQL Server

Dalam SQL Server, mengenal pasti jadual dan lajur rujukan kunci asing boleh menjadi maklumat yang berharga untuk memahami hubungan data. Untuk mendapatkan maklumat ini, kita boleh memanfaatkan paparan information_schema.

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 
Salin selepas log masuk

Contoh:

Andaikan kami mempunyai jadual T_ALV_Ref_FilterDisplay dan T_AP_Ref_Customer, dan T_ALV_Ref_Ref asing merujuk T_AP_Ref_Customer.MDT_ID. Untuk mencari jadual dan lajur yang dirujuk, kami boleh melaksanakan pertanyaan:

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';
Salin selepas log masuk

Ini akan mengembalikan hasil berikut:

REFERENCED_TABLE_SCHEMA | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME
------------------------ | ---------------------- | ----------------------
dbo                      | T_AP_Ref_Customer      | MDT_ID
Salin selepas log masuk

Had:

Perhatikan bahawa information_schema tidak termasuk maklumat tentang indeks. Jika rujukan kunci asing adalah berdasarkan indeks unik, anda perlu menggunakan jadual proprietari Microsoft sebaliknya.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Rujukan Utama Asing dalam Pelayan SQL Menggunakan Skim_Informasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan