T-SQL Replace

Vermutlich ist das für die meisten nichts neues, aber ich habe nun schon einige male nach dem enrsprechenden Befehl gesucht und dabei Zeit vergeudet, aus diesem Grund mach ich nun für mich selbst diesen Blog Eintrag.


Hintergrund:


In einer Datenbank (MS-SQL) sind in einem Tabellenfeld Werte die gegen andere Werte ausgetauscht werden müssen.


Ein simples Update wie das hier:

UPDATE [TABLENAME] SET [FIELDNAME] = NEWVALUE

Nun ist es aber so, dass ich nur einen Teil des Inhaltes ändern muss, im speziellen Fall wird in der Spalte der Tabelle Informationen über den Speicherort einer Datei vorgehalten.


Hier ein Beispielinhalt:


C:\Program Files\hMailServer\Data\ihrportal\AB\{AB88191E-9A94-4C08-90B8-597A4B2FA3E2}.eml


Nun befinden sich die Daten aber nicht mehr auf dem Laufwerk C: sondern die Daten befinden sich nun auf Laufwerk D: und dort in dem Verzeichnis hMailServer\Data also auf D:\hMailServer\Data. Somit muss der Inhalt des Feldes wie folgt geändert werden:


D:\hMailServer\Data\ihrportal\AB\{AB88191E-9A94-4C08-90B8-597A4B2FA3E2}.eml


Dies muss nun bei tausenden von Einträgen durchgeführt werden.


Lösung:


Um nun die Daten in der Spalte messagefilename der Tabelle hm_messages zu ändern habe ich folgedes Query ausgeführt:

update hm_messages
set messagefilename = REPLACE(messagefilename,‘C:\Program Files\hMailServer\Data’,‘D:\hMailServer\Data’)

So und nun hoffe ich das ich das nächste mal wenn ich so etwas machen möchte, daran denke dass ich dazu einen Blog Eintrag verfasst habe.

Ein Gedanke zu „T-SQL Replace“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.