mercredi 14 janvier 2009
Obtenir la clé primaire d'une table sous SQL Server
Publié par Infinite Loop, à 19 h 29
1 commentaire
Voici deux requêtes SQL qui permettent de connaître le nom du champ représentant la clé primaire d'une table sous SQL Server.
Requête # 1
SELECT kcu.COLUMN_NAMERequête # 2 :
FROM INFORMATION_SCHEMA.table_constraints tc
INNER JOIN INFORMATION_SCHEMA.key_column_usage kcu
ON tc.CONSTRAINT_SCHEMA = kcu.CONSTRAINT_SCHEMA
AND tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME
WHERE tc.TABLE_SCHEMA = 'dbo'
AND tc.TABLE_NAME = 'nom_de_la_table'
AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
SELECT column_nameÀ noter qu'on peut obtenir la liste des clés étrangères en remplacant IsPrimaryKey par IsForeignKey.
FROM INFORMATION_SCHEMA.key_column_usage
WHERE OBJECTPROPERTY(OBJECT_ID(constraint_name), 'IsPrimaryKey') = 1
AND table_name = 'nom_de_la_table'
pour des versions + récentes :
SELECT column_name
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME = 'PRIMARY'
AND table_name = 'nom_table'