Maison > base de données > tutoriel mysql > Comment puis-je récupérer les détails des colonnes d'une table SQL Server, y compris les contraintes et les types de données ?

Comment puis-je récupérer les détails des colonnes d'une table SQL Server, y compris les contraintes et les types de données ?

Susan Sarandon
Libérer: 2025-01-01 05:26:10
original
260 Les gens l'ont consulté

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

Récupération des détails des colonnes d'un tableau avec des contraintes et des types de données

Lorsqu'il s'agit d'une grande base de données, il devient essentiel d'avoir une compréhension globale de la table structures et contraintes. En obtenant la liste des colonnes d'une table ainsi que les types de données associés, les contraintes NOT NULL et les informations PRIMARY KEY, vous pouvez obtenir des informations précieuses sur votre architecture de données.

SQL Server fournit plusieurs mécanismes pour extraire ces détails. Une requête simple peut récupérer les noms de colonnes, les types de données et le statut de nullabilité :

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')
Copier après la connexion

Intégration des informations PRIMARY KEY

Pour améliorer encore cette requête, nous pouvons incorporer Contraintes de CLÉ PRIMAIRE. En tirant parti des tables sys.index_columns et sys.indexes, nous pouvons déterminer si une colonne est définie comme clé primaire :

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
Copier après la connexion

Requête finale et sortie

La combinaison des extraits de code précédents donne la requête complète suivante :

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')
Copier après la connexion

L'exécution de cette requête produira un résultat détaillé tableau qui comprend les colonnes suivantes :

  • Nom de la colonne
  • Type de données
  • Longueur maximale (pour les types de données de caractères et certains types numériques)
  • La précision (pour les types de données numériques)
  • L'échelle (pour les types de données numériques)
  • est Null (indiquant si la colonne autorise les valeurs nulles)
  • Primary Key (indiquant si la colonne fait partie d'une contrainte de clé primaire)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal