Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment trouver quelles colonnes n'ont pas de données (toutes les valeurs sont NULL) ?

Pour une seule colonne, count(ColumnName) renvoie le nombre de lignes où ColumName n'est pas nul :

select  count(TheColumn)
from    YourTable

Vous pouvez générer une requête pour toutes les colonnes. Selon la suggestion de Martin, vous pouvez exclure les colonnes qui ne peuvent pas être nulles avec is_nullable = 1 . Par exemple :

select  'count(' + name + ') as ' + name + ', '
from    sys.columns
where   object_id = object_id('YourTable')
        and is_nullable = 1

Si le nombre de tables est important, vous pouvez générer une requête pour toutes les tables de la même manière. La liste de toutes les tables est dans sys.tables .