Une requête à connaitre pour faciliter la recherche d’informations dans une base de données (exemple: SCCM)

Le plus compliqué dans la mise en place de rapports personnalisés liés à un produit (exemple: SCCM) c’est belle et bien de savoir quelle requête SQL créée ! Même s’il est possible de consulter le schéma de la base SQL pour la plupart des produits, il est souvent difficile de savoir dans quelle table ou vue se trouve l’information.

Ci-dessous les deux documents qui peuvent vous aider à mieux appréhender la structure de la base SCCM :

  • Configuration Manager 2007 SQL View Schema Microsoft Visio document (CM2007SQLViewsSchema.vsd)
  • Configuration Manager 2007 SQL Views Excel spreadsheet (CM2007SQLViews.xls )

Mais bon, même avec ça ce n’est pas forcément évident. La requête suivante vous permettra de trouver les informations dans les nombreuses tables ou vues SCCM. Pour ce faire il suffit de remplacer NomColonne<x> se trouvant en commentaire par le nom de la colonne cherchée.

-- Recherche de colonnes dans toutes les tables d'une base de donnés--

DECLARE @C1 varchar (200)

DECLARE @C2 varchar (200)

DECLARE @C3 varchar (200)

-- remplacer NomColonne<x> par le nom des colonnes recherchées--

SET @C1 = 'NomColonne1'

SET @C2 = 'NomColonne2'

SET @C3 = 'NomColonne3'

--

SELECT T.Name as TableName, V.Name as ViewName, C.Name as ColumnName--, *

FROM sys.columns C left outer join sys.tables T

ON c.object_id = T.object_id

LEFT OUTER JOIN sys.views V ON c.object_id = V.object_id

WHERE c.name in (@C1, @C2, @C3)