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
Mary-Kate Olsenoriginal
2025-01-03 22:42:39978parcourir

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

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

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