En parcourant les noms de colonne avec le SQL dynamique

Je suis juste venu avec une idée pour un morceau de code pour afficher toutes les valeurs distinctes pour chaque colonne, et de compter le nombre d'enregistrements pour chaque. Je veux le code d'une boucle sur toutes les colonnes.

Voici ce que j'ai jusqu'à présent... je suis nouveau sur SQL afin de supporter la noobness 🙂

Dur code:

  select [Sales Manager], count(*)
  from  [BT].[dbo].[test]
  group by [Sales Manager]
  order by 2 desc

Tentative de SQL dynamique:

Declare @sql varchar(max),
@column as varchar(255)

    set @column = '[Sales Manager]'
    set @sql = 'select ' + @column + ',count(*) from [BT].[dbo].[test] group by ' + @column + 'order by 2 desc'

    exec (@sql)

Ces deux fonctionnent très bien. Comment puis-je faire en boucle sur toutes les colonnes? Je n'ai pas l'esprit si j'ai coder en dur les noms de colonne et il travaille son chemin à travers le substrat dans chaque un pour @colonne.

Cela fait-il sens?

Merci à tous!

OriginalL'auteur Lucas | 2013-12-09