Maison >base de données >tutoriel mysql >Comment récupérer les informations sur les colonnes, les types de données et les clés primaires dans SQL Server ?

Comment récupérer les informations sur les colonnes, les types de données et les clés primaires dans SQL Server ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-31 17:40:14652parcourir

How to Retrieve Column Information, Data Types, and Primary Keys in SQL Server?

Obtention d'informations sur les colonnes, les types de données, les contraintes nulles et les clés primaires dans SQL Server

Dans SQL Server, vous pouvez récupérer des informations détaillées sur les colonnes d'une table spécifique, y compris leurs types de données, leur longueur, leur capacité Null et s'il s'agit de clés primaires. Voici comment y parvenir :

  1. Sélectionnez les colonnes nécessaires :
    Commencez votre requête en sélectionnant les colonnes suivantes :

    • Nom de la colonne : utilisez c.name pour obtenir le nom de la colonne.
    • Type de données : utilisez t.name pour récupérer le type de données de la colonne.
    • Longueur : pour les chaînes et autres types de données avec une longueur définie, utilisez c.max_length.
    • Précision et échelle : pour les types de données numériques, incluez c.precision et c.scale.
    • Statut Nullable : utilisez c.is_nullable pour déterminer si la colonne autorise null valeurs.
  2. Rejoindre les tables nécessaires :
    Rejoignez la table sys.columns (alias c) avec la table sys.types (alias t) basée sur leur user_type_id pour récupérer des informations spécifiques à la colonne.
  3. Vérifier la clé primaire Contraintes :
    Facultativement, vous pouvez vérifier les contraintes de clé primaire en vous joignant aux tables sys.index_columns (ic) et sys.indexes (i). Si une colonne a un index avec is_primary_key défini sur 1, il s'agit d'une clé primaire. Utilisez ISNULL(i.is_primary_key, 0) pour gérer les cas où la colonne n'est pas une clé primaire.
  4. Filtrer par nom de table :
    Utilisez WHERE c.object_id = OBJECT_ID(' YourTableName') pour filtrer les résultats pour une table spécifique, en remplaçant 'YourTableName' par la table réelle name.
  5. Remplacer le nom de la table :
    Pour les schémas, remplacez 'YourTableName' par 'YourSchemaName.YourTableName'.

Exemple Requête :

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 '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')

Sortie :

La requête renverra une table avec les informations suivantes :

Column Name Data type Max Length Null? Primary Key

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!

Déclaration:
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