Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Maklumat Jadual dan Lajur yang Dirujuk daripada Kunci Asing dalam Pelayan SQL menggunakan `INFORMATION_SCHEMA`?

Bagaimana untuk Mendapatkan Maklumat Jadual dan Lajur yang Dirujuk daripada Kunci Asing dalam Pelayan SQL menggunakan `INFORMATION_SCHEMA`?

DDD
Lepaskan: 2024-12-31 20:36:10
asal
497 orang telah melayarinya

How to Retrieve Referenced Table and Column Information from Foreign Keys in SQL Server using `INFORMATION_SCHEMA`?

Mengambil Rujukan Kunci Asing Menggunakan Information_schema

Dalam SQL Server, mengekstrak nama jadual dan lajur yang dirujuk yang dikaitkan dengan kunci asing boleh dicapai menggunakan pertanyaan tentang skema_maklumat pandangan.

Pertanyaan:

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

Pertanyaan ini mendapatkan semula skema kekangan kunci asing, nama, skema jadual, nama jadual, nama lajur dan kedudukan ordinal untuk kedua-duanya rujukan dan rujukan jadual.

Contoh:

Untuk mendapatkan semula jadual dan lajur yang dirujuk untuk kunci asing FA_MDT_ID dalam jadual T_ALV_Ref_FilterDisplay, gunakan pertanyaan berikut:

SELECT 
    FK_CONSTRAINT_SCHEMA,
    FK_CONSTRAINT_NAME,
    FK_TABLE_SCHEMA,
    FK_TABLE_NAME,
    FK_COLUMN_NAME,
    REFERENCED_TABLE_SCHEMA,
    REFERENCED_TABLE_NAME,
    REFERENCED_COLUMN_NAME
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
WHERE
    KCU1.FK_TABLE_NAME = 'T_ALV_Ref_FilterDisplay'
    AND KCU1.FK_COLUMN_NAME = 'FA_MDT_ID';
Salin selepas log masuk

Hasilnya akan memberikan nama jadual yang dirujuk (T_AP_Ref_Customer) dan nama lajur (MDT_ID).

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Maklumat Jadual dan Lajur yang Dirujuk daripada Kunci Asing dalam Pelayan SQL menggunakan `INFORMATION_SCHEMA`?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan