In meiner Legacy-Datenbank lässt das Schema häufig unnötigerweise Null-Einträge für bestimmte Spalten zu. Um herauszufinden, welche Spalten besonders wichtig sind, muss ich SQL Server 2008 abfragen, das über mein Fachwissen hinausgeht. Mein Ziel ist es, das Schema ein wenig zu straffen und mich vor dem Nullfall in meinem Code zu schützen.
Eine grobe Methode (Option 1) zur Lösung meines Problems besteht darin, alle Datensätze abzurufen (und * auszuwählen), die mindestens einen Nulleintrag enthalten, und dann nach Spalten zu suchen, die keine Nulleinträge enthalten. Ich könnte natürlich nur verwenden Where columnA IS NULL OR columnB IS NULL OR columnC IS NULL
, aber das wird für Tabellen mit vielen Spalten langweilig. Einige Tabellen in dieser Datenbank enthalten mehr als zwanzig Spalten! Außerdem gibt es insgesamt etwa 500 Tische. Allgemeine Lösungen sind also am besten.
Hier sind drei Optionen für Antworten, die mich zufrieden stellen würden:
- Option 1: "Holen Sie mir alle Datensätze, bei denen mindestens eine der Spalten null ist". Ich werde nach Spalten ohne Null-Einträge suchen.
- Option 2: Eine noch bessere Antwort wäre ein Skript, das eine Liste von Spaltennamen erhält, die mindestens einen Nulleintrag enthalten. Dann werde ich manuell sehen, welche nullbaren Spalten nicht in dieser Liste enthalten sind.
- Option 3: Die beste Antwort würde mir eine Liste von Spaltennamen geben, die in ihrem Schema als nullwertfähig markiert sind, obwohl in diesen Spalten keine Datensätze mit einem Nulleintrag vorhanden sind.
Vielen Dank!
null
irgendwo eine haben oder würde eine Schätzung reichen?