Comment get des métadonnées de colonne à partir d'un synonyme de table

Comment puis-je déterminer les métadonnées de colonne à partir d'un synonyme de table dans une database SQL Server 2005? J'ai un synonyme appelé «ProjectSyn» pour une table appelée «Projet», mais je ne peux find aucune métadonnée de colonne pour le synonyme.

Ma conjecture est de quelque part déterminer la «table de base» pour le synonyme, puis interroger les métadonnées de colonne pour cette table. Est-ce une approche correcte, et sinon, que serait-ce?

Quelque chose comme ça? (édité)

 select c.* from sys.columns c inner join sys.synonyms s on c.object_id = object_id(s.base_object_name) where s.name = 'ProjectSyn' 

C'est ma solution qui fonctionne avec des synonymes de différentes bases de données:

 SELECT TOP 0 * INTO #TEMP1 FROM YourTable SELECT [column_name] = c.name, [data_type] = t.name, [character_maximum_length] = c.max_length FROM tempdb.sys.columns c inner join tempdb.sys.types t on t.system_type_id = c.system_type_id WHERE [object_id] = object_id('tempdb..#TEMP1'); DROP TABLE #TEMP1 

Oui, je pense get l'object de base, puis récupérer les colonnes, est votre seule option.

Pour get le nom de l'object de base pour un synonyme, il suffit d'interroger la vue sys.synonyms