Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come trovare quali colonne non hanno dati (tutti i valori sono NULL)?

Per una singola colonna, count(ColumnName) restituisce il numero di righe in cui ColumName non è nullo:

select  count(TheColumn)
from    YourTable

È possibile generare una query per tutte le colonne. Secondo il suggerimento di Martin, puoi escludere colonne che non possono essere nulle con is_nullable = 1 . Ad esempio:

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

Se il numero di tabelle è elevato, è possibile generare una query per tutte le tabelle in modo simile. L'elenco di tutte le tabelle è in sys.tables .