Ceci peut aussi te faire trouver le bonheur
Pour extraire la colone cle d'une seule table execute:
SELECT Column_name FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE Constraint_Name =(select name from sysobjects WHERE xtype='pk' and parent_obj=object_id('<LE NOM DE TA TABLE ICI>'))
Remarque que tu dois placer le nom de ta table la ou j'ai marque.
Si tu veux extraire les colones cle de toutes tes tables dans ta base de donnees tu execute:
SELECT table_name,Column_name FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE Constraint_Name in(SELECT name from sysobjects WHERE xtype='pk')
Tu peux stocker ces codes au serveur en creant une procedure comme ceci:
Create proc ExtrairePK @table varchar(50)=null
as
if @table is null
select table_name,Column_name from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
where Constraint_Name in(select name from sysobjects where xtype='pk')
else
select table_name,Column_name from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
where Constraint_Name in(select name from sysobjects where xtype='pk'
and parent_obj=object_id(@table))
Tu peux alors executer ceci en faisant simplement:
Exec ExtrairePK --ceci te donnera toutes les colones cles dans la base
ou
Exec ExtrairePK 'ma table' --ceci te donnera les colones dans la table.
Voila, Tu as la quelques versets de la bible du TSQL par Le Saint BertrandKis.
Salut!