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