En voici un basé sur les tables système de SQL 2005 (99% sûr qu'il fonctionnerait en 2008). Cela va lister tous les PKs pour toutes les tables définies par l'utilisateur, avec toutes les colonnes et quelques informations supplémentaires qui pourraient être supprimées. Ajoutez des paramètres pour sélectionner une table à la fois.
SELECT
schema_name(ta.schema_id) SchemaName
,ta.name TableName
,ind.name
,indcol.key_ordinal Ord
,col.name ColumnName
,ind.type_desc
,ind.fill_factor
from sys.tables ta
inner join sys.indexes ind
on ind.object_id = ta.object_id
inner join sys.index_columns indcol
on indcol.object_id = ta.object_id
and indcol.index_id = ind.index_id
inner join sys.columns col
on col.object_id = ta.object_id
and col.column_id = indcol.column_id
where ind.is_primary_key = 1
order by
ta.name
,indcol.key_ordinal