Maison > base de données > tutoriel mysql > Comment récupérer les informations de colonne, y compris les contraintes de clé primaire dans SQL Server ?

Comment récupérer les informations de colonne, y compris les contraintes de clé primaire dans SQL Server ?

Mary-Kate Olsen
Libérer: 2025-01-03 22:42:39
original
1017 Les gens l'ont consulté

How to Retrieve Column Information Including Primary Key Constraints in SQL Server?

Récupération des informations sur les colonnes avec des contraintes de clé primaire dans SQL Server

Obtention d'une liste de colonnes dans une table avec leurs types de données et NON NULL les contraintes sont une tâche courante. Cependant, vous devrez peut-être également déterminer quelles colonnes sont des clés primaires. Cet article explique comment étendre une requête existante pour inclure ces informations.

Requête étendue

Pour incorporer des informations de clé primaire dans votre requête, utilisez l'extension suivante :

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

Colonne supplémentaire

Cette extension ajoute une colonne supplémentaire à la sortie, indiquée comme « Clé primaire » dans le résultat attendu :

Column Name Data Type Length isNull Primary Key
... ... ... ... ...

Si une colonne est une clé primaire, la colonne « Clé primaire » affichera VRAI ; sinon, il affichera FALSE.

Requête complète

La requête complète avec l'extension de clé primaire est la suivante :

SELECT 
    c.name 'Column Name',
    t.Name 'Data type',
    c.max_length 'Max Length',
    c.precision ,
    c.scale ,
    c.is_nullable,
    ISNULL(i.is_primary_key, 0) '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

Remplacer ' YourTableName' avec le nom réel de votre table pour récupérer les informations souhaitées.

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