Ich habe eine bestehende MSSQL-Datenbank, in der die Werte in einigen Spalten aktualisiert werden müssen, entsprechend einer Tabelle, die die Zuordnungen von alten Daten und neuen Daten enthält.
Die Tabelle ist wie folgt:
%Vor%Dabei sind ABCD die Spaltennamen, die sich auf die Datenbank beziehen, und OLD / NEW bezieht sich auf die Daten.
Also für jede Zeile (ca. 2500 Zeilen)
Die Datenbankwerte, die in jeder Spalte mit OLD übereinstimmen, müssen in NEU geändert werden
Meine derzeitigen Gedanken sind es in ähnlicher Weise zu tun: SQL-Anweisung, die eine Oracle-Datenbanktabelle aktualisiert aus einer Excel-Tabelle
Im Wesentlichen, Excel zu erhalten, um eine Liste von Replace-Anweisungen zu formulieren, obwohl dies sich wie eine entsetzlich verschlungene Art und Weise anfühlt, mit dem Problem umzugehen!
Gibt es eine Möglichkeit, SQL über jede Zeile des Arbeitsblattes zyklisch durchlaufen zu lassen, überprüfen Sie alle Datensätze für a = alt, b = alt2, c = alt3, d = alt4 und ersetzen Sie dann diese Werte durch das entsprechende a = neu, b = neu2, c = neu3, d = neu4?
Sie sollten nicht jede Zeile im Arbeitsblatt durchlaufen müssen. Sie können den Befehl OPENROWSET
wie in der Antwort verwenden, mit der Sie die Tabellenkalkulationsdaten in eine Art temporäre Tabelle geladen haben. Sie können dann eine normale UPDATE
-Anweisung für diese Tabelle ausführen.
Es würde ungefähr so aussehen
%Vor%Tags und Links sql sql-server