2016-05-13 7 views
1

Ich habe ältere SQL Server-Datenbank, die seit ewig aktualisiert wurde. Ich habe die DB rasiert, um nur die letzten 4 Jahre Informationen zu behalten.Wie finden Sie alle Spalten in allen Tabellen, die alle NULL-Werte enthalten?

Aufgrund seiner Langlebigkeit gibt es eine Tonne von Säulen, die nicht mehr verwendet werden und über die Jahre veraltet sind.

Ich suche nach einer einigermaßen schmerzfreien Möglichkeit, alle Spalten in allen Tabellen zu finden, die nichts als NULL-Werte haben.

Anders als eine kleine Desktop-App zu schreiben, gibt es eine Möglichkeit, dies über SQL zu tun?

+2

http://stackoverflow.com/questions/3979866/how-can-i-find-all-columns-that-are-filled-with-100-_nulls-in-my-sql-server-data – JJ32

Antwort

1

Ja, wählen Sie count() über jede Spalte. Diejenigen, die 0 zurückgeben, sind diejenigen, die nur null Werte haben.

So:

select count(col1) col1 from mytable 

Wiederholen Sie für jede Tabelle und Spalte.

Sie könnten solche SQL-Anweisungen mit dieser Aussage erzeugen:

SELECT 'SELECT COUNT(' + COLUMN_NAME + ') AS COLUMN_NAME FROM ' + TABLE_NAME + ';' 
FROM INFORMATION_SCHEMA.COLUMNS; 

die Ausgabe der obigen Abfrage nehmen und es als Batch von SQL-SELECT-Anweisungen ausführen, und das Ergebnis überprüfen, all 0 Ausgänge zu lokalisieren.

+0

Konnte gibst du Feedback darüber, ob das deine Frage beantwortet hat? – trincot

Verwandte Themen