Les informations de schéma et des Clés Primaires
Comment dois-je viens d'imprimer une "clé primaire" pour la colonne de la clé primaire?
Je obtenir "clé primaire" pour toutes les colonnes si la table possède une clé primaire, au lieu d'une colonne de la clé primaire et les autres colonnes vides dans keyType.
SELECT c.TABLE_NAME,
c.COLUMN_NAME,
c.DATA_TYPE,
c.Column_default,
c.character_maximum_length,
c.numeric_precision,
c.is_nullable,
CASE
WHEN u.CONSTRAINT_TYPE = 'PRIMARY KEY' THEN 'primary key'
ELSE ''
END AS KeyType
FROM INFORMATION_SCHEMA.COLUMNS as c
LEFT JOIN information_schema.table_constraints as u ON c.table_name = u.table_name
ORDER BY table_name
double possible de Comment déterminer une clé primaire d'une table dans SQL Server?
OriginalL'auteur cdub | 2011-06-27
Vous devez vous connecter pour publier un commentaire.
tc REJOINDRE ku est manquant ... ET tc.CONSTRAINT_CATALOG = ku.CONSTRAINT_CATALOG ET tc.CONSTRAINT_SCHEMA = ku.CONSTRAINT_SCHEMA
OriginalL'auteur EricZ
un très petit ajouter à la première réponse. Il est possible de voir en même temps la MS_Description (ou d'autres d'étendre les propriétés)
OriginalL'auteur marcS
J'ai trouvé ce code ci-dessous pour être la méthode la plus simple pour trouver la clé primaire d'une table. Il ne nécessite qu'une jointure externe gauche entre les information_schema.les colonnes table et le information_schema.key_column_usage table.
Remarque: Ce code a été construit à l'aide de SQL Server 2017 Express (14.0.1000) et après, j'ai créé la clé primaire, j'ai pu voir de ces valeurs dans le KEY_COLUMN_USAGE table. J'ai aussi vu un enregistrement dans la CONSTRAINT_TABLE_USAGE qui a identifié les constraint_name, mais je n'ai pas trouvé que pour être une exigence afin d'obtenir le joindre en qui a révélé la clé primaire.
Note finale: je suis juste de retour dans SQL server sur un projet personnel, après près d'une décennie à l'écart de la DB (MySQL), et donc je suis loin d'être un expert sur le sujet.
OriginalL'auteur bigdavey71
Comme une outre, pensez regarder:
Parfois, l'apprentissage à partir de la MS de l'équipe est une bonne chose. 🙂
Ne pas utiliser les informations de schéma.
OriginalL'auteur Gregory A Beamer