Abbiamo un database con un gruppo di tabelle larghe (40-80 colonne ciascuna) e appena trovato un bug che ha introdotto valori NULL in circa 500 dei record. I valori NULL possono apparire in qualsiasi colonna (sono tutte colonne integer, vedi immagine sotto) ma questi valori NULL stanno causando problemi con uno dei nostri sistemi di reporting che non possono essere modificati facilmente. Abbiamo bisogno di sostituire i valori NULL con uno specifico valore statico (in questo caso 99), ma poiché questa modifica deve essere fatta su una base per colonna per oltre 250 colonne diverse preferisco non scrivere singoli script TSQL aggiornando ogni colonna uno da uno.Aggiorna tutti i valori SQL NULL in più colonne utilizzando la clausola WHERE della colonna?
Al momento il mio cervello è troppo fritto per pensare a una soluzione intelligente, quindi la mia domanda è: come posso eseguire questa operazione su tutte le colonne di una tabella (o meglio ancora su più tabelle) utilizzando una query SQL semplice e leggibile. Posso isolare i record abbastanza facilmente utilizzando una catena di WHERE (Answer_1 IS NULL) OR (Answer_2 IS NULL) OR ...
o anche da numeri di AdministrationID per ogni tabella, ma questo trucco non funzionerà quando si aggiorna come clausola where per riga non per colonna. Qualche consiglio?
Ecco una query di esempio che mostra alcuni dei record da 4 tavoli diversi:
Questo fa male, davvero male. –
Suppongo che aggiungerei un vincolo non nullo con un valore predefinito 99 su ciascuna colonna? – njzk2
Guardo questo e mi chiedo perché le colonne non sono le seguenti: AdministrationID, InstrumentID, ID risposta, valore. Diamine, potresti persino aggiungere un altro id in modo da poter unire tutti quei tavoli in 1 ... –