Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh mendapatkan semula rujukan kunci asing menggunakan INFORMATION_SCHEMA SQL Server?

Bagaimanakah saya boleh mendapatkan semula rujukan kunci asing menggunakan INFORMATION_SCHEMA SQL Server?

Linda Hamilton
Lepaskan: 2025-01-01 01:17:09
asal
303 orang telah melayarinya

How can I retrieve foreign key references using SQL Server's INFORMATION_SCHEMA?

Mendapatkan Rujukan Kunci Asing daripada Information_Schema dalam Pelayan SQL

Dalam Pelayan SQL, kunci asing memainkan peranan penting dalam mengekalkan integriti rujukan dalam pangkalan data . Untuk mendapatkan maklumat tentang rujukan kunci asing, information_schema boleh menjadi sumber yang berharga.

Pertanyaan untuk Mendapatkan Rujukan Kunci Asing:

Pertanyaan berikut mendapatkan semula nama kekangan kunci asing , jadual rujukan dan lajur untuk kunci asing yang diberikan lajur:

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 
    ,KCU2.TABLE_SCHEMA AS REFERENCED_TABLE_SCHEMA 
    ,KCU2.TABLE_NAME AS REFERENCED_TABLE_NAME 
    ,KCU2.COLUMN_NAME AS 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 
Salin selepas log masuk

Nota: Skema_maklumat tidak mengandungi indeks. Untuk mencari kunci asing berdasarkan indeks unik, rujuk jadual proprietari SQL Server.

Contoh Pengambilan Rujukan Kunci Asing:

Pertimbangkan struktur jadual berikut:

CREATE TABLE [dbo].[T_ALV_Ref_FilterDisplay] (
    [FA_MDT_ID] [varchar](20) NOT NULL,
    [FA_NAME] [varchar](255) NOT NULL
)

CREATE TABLE [dbo].[T_AP_Ref_Customer] (
    [MDT_ID] [varchar](20) NOT NULL,
    [CUST_NAME] [varchar](255) NOT NULL
)

ALTER TABLE [dbo].[T_ALV_Ref_FilterDisplay]  WITH CHECK ADD  CONSTRAINT [FK_T_ALV_Ref_FilterDisplay_T_AP_Ref_Customer] FOREIGN KEY([FA_MDT_ID])
REFERENCES [dbo].[T_AP_Ref_Customer] ([MDT_ID])
Salin selepas log masuk

Untuk mendapatkan semula jadual dan lajur yang dirujuk untuk kunci asing [FA_MDT_ID], laksanakan pertanyaan berikut:

SELECT 
     FK_TABLE_NAME, 
     REFERENCED_TABLE_NAME, 
     REFERENCED_COLUMN_NAME 
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
WHERE FK_TABLE_NAME = 'T_ALV_Ref_FilterDisplay' 
  AND FK_COLUMN_NAME = 'FA_MDT_ID'
Salin selepas log masuk

Hasilnya akan dipaparkan:

FK_TABLE_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME
---------------|----------------------|-------------------------
T_ALV_Ref_FilterDisplay | T_AP_Ref_Customer    | MDT_ID
Salin selepas log masuk

Ini menunjukkan bahawa kunci asing [FA_MDT_ID] dalam [T_ALV_Ref_FilterDisplay] merujuk kepada [MDT_ID ] lajur dalam jadual [T_AP_Ref_Customer].

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan semula rujukan kunci asing menggunakan INFORMATION_SCHEMA SQL Server?. 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