Update alle SQL-NULL-Werte in mehreren Spalten mit Column level WHERE-Klausel?

Haben wir eine Datenbank mit einer Reihe von breiten Tabellen (40-80 Spalten) und nur einen Fehler gefunden, die vorgestellt werden NULL-Werte in über 500 Datensätze. Die können NULL-Werte erscheinen in einer der Spalten (alle integer-Spalten, siehe Bild unten), aber diese NULL-Werte führen zu Problemen mit einem unserer reporting-Systeme, die nicht einfach gewechselt werden. Wir müssen ersetzen Sie die NULL-Werte mit einem bestimmten statischen Wert (in diesem Fall 99), aber da diese änderung gemacht werden muss pro Spalte Grundlage für über 250 verschiedene Spalten möchte ich lieber nicht schreiben, individuelle TSQL-Skripts aktualisieren jede Spalte einzeln.

Mein Gehirn ist zu gebratenem jetzt zu denken, bis eine clevere Lösung, also meine Frage ist wie kann ich diese Aufgabe ausführen, die auf alle Spalten auf eine Tabelle (oder besser noch mehreren Tischen) mit einer einfachen und lesbaren SQL-Abfrage. Ich kann isolieren, die Datensätze einfach genug, mit einer Kette von WHERE (Answer_1 IS NULL) OR (Answer_2 IS NULL) OR ... oder sogar durch AdministrationID zahlen Sie für jede Tabelle, aber dieser trick wird nicht funktionieren, wenn die Aktualisierung als where-Klausel ist pro Zeile, nicht pro Spalte. Irgendwelche Ratschläge?

Hier ist eine Beispiel-Abfrage zeigt ein paar Sätze aus 4 verschiedenen Tabellen:
Update alle SQL-NULL-Werte in mehreren Spalten mit Column level WHERE-Klausel?

  • Das tut weh, echt schlimm.
  • Ich glaube, ich würde hinzufügen einer not null-Einschränkung mit einem Standardwert von 99 auf jeder Spalte?
  • Ich schaue ihn an und Frage mich, warum die Spalten sind jedoch nicht die folgenden: AdministrationID, InstrumentID, AnswerID, Wert. Heck, könnten Sie sogar fügen Sie eine andere id, so dass Sie merge-Tabellen in 1...
InformationsquelleAutor Greg Bray | 2010-10-15
Schreibe einen Kommentar