Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Dapatkan Butiran Lajur Jadual SQL Server Termasuk Kekangan dan Jenis Data?

Bagaimanakah Saya Boleh Dapatkan Butiran Lajur Jadual SQL Server Termasuk Kekangan dan Jenis Data?

Susan Sarandon
Susan Sarandonasal
2025-01-01 05:26:10287semak imbas

How Can I Retrieve SQL Server Table Column Details Including Constraints and Data Types?

Mendapatkan Butiran Lajur Jadual dengan Kekangan dan Jenis Data

Apabila berurusan dengan pangkalan data yang besar, menjadi penting untuk mempunyai pemahaman yang komprehensif tentang jadual struktur dan kekangan. Dengan mendapatkan senarai lajur dalam jadual bersama-sama dengan jenis data yang berkaitan, BUKAN NULL kekangan dan maklumat UTAMA UTAMA, anda boleh memperoleh cerapan berharga tentang seni bina data anda.

SQL Server menyediakan beberapa mekanisme untuk mengekstrak butiran tersebut. Pertanyaan mudah boleh mendapatkan semula nama lajur, jenis data dan status kebolehbatalan:

SELECT 
    c.name AS ColumnName,
    t.Name AS DataType,
    c.is_nullable AS IsNull
FROM
    sys.columns c
JOIN 
    sys.types t ON c.user_type_id = t.user_type_id
WHERE
    c.object_id = OBJECT_ID('YourTableName')

Mengintegrasikan Maklumat UTAMA UTAMA

Untuk meningkatkan lagi pertanyaan ini, kami boleh menggabungkan Kekangan UTAMA UTAMA. Dengan memanfaatkan jadual sys.index_columns dan sys.indexes, kita boleh menentukan sama ada lajur ditakrifkan sebagai kunci utama:

LEFT OUTER JOIN
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id

Pertanyaan dan Output Akhir

Menggabungkan coretan kod sebelumnya menghasilkan yang komprehensif berikut pertanyaan:

SELECT
    c.name AS "Column Name",
    t.Name AS "Data Type",
    c.max_length AS "Max Length",
    c.precision,
    c.scale,
    c.is_nullable AS "is Null",
    ISNULL(i.is_primary_key, 0) AS "Primary Key"
FROM
    sys.columns c
INNER JOIN
    sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
    c.object_id = OBJECT_ID('YourTableName')

Melaksanakan pertanyaan ini akan menghasilkan jadual terperinci yang merangkumi lajur berikut:

  • Nama Lajur
  • Jenis Data
  • Panjang Maks (untuk jenis data aksara dan beberapa jenis angka)
  • Ketepatan (untuk angka jenis data)
  • Skala (untuk jenis data berangka)
  • adalah Null (menunjukkan sama ada lajur membenarkan nilai nol)
  • Kunci Utama (menunjukkan sama ada lajur adalah sebahagian daripada kekangan kunci utama)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Butiran Lajur Jadual SQL Server Termasuk Kekangan dan Jenis Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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