Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie finde ich heraus, welche Spalten keine Daten enthalten (alle Werte sind NULL)?

Für eine einzelne Spalte count(ColumnName) gibt die Anzahl der Zeilen zurück, wobei ColumName ist nicht null:

select  count(TheColumn)
from    YourTable

Sie können eine Abfrage für alle Spalten generieren. Gemäß Martins Vorschlag können Sie Spalten ausschließen, die nicht null sein können, mit is_nullable = 1 . Zum Beispiel:

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

Wenn die Anzahl der Tabellen groß ist, können Sie auf ähnliche Weise eine Abfrage für alle Tabellen generieren. Die Liste aller Tabellen befindet sich in sys.tables .