411 Stimmen

Ersetzen einer Zeichenfolge in einer SQL Server-Tabellenspalte

Ich habe eine Tabelle ( SQL Sever ), die auf Pfade ( UNC oder anders), aber jetzt wird sich der Weg ändern.

In der Spalte "Pfad" habe ich viele Datensätze, und ich muss nur einen Teil des Pfads ändern, aber nicht den gesamten Pfad. Und ich muss in jedem Datensatz dieselbe Zeichenfolge in die neue Zeichenfolge ändern.

Wie kann ich dies mit einer einfachen update ?

694voto

cjk Punkte 44394

Es ist so einfach:

update my_table
set path = replace(path, 'oldstring', 'newstring')

150voto

Marc Gravell Punkte 970173
UPDATE [table]
SET [column] = REPLACE([column], '/foo/', '/bar/')

31voto

Caesar Punkte 337

Ich habe das oben beschriebene Verfahren ausprobiert, aber es hat nicht das richtige Ergebnis gebracht. Die folgende tut es:

update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'

19voto

Igor Bakay Punkte 171
UPDATE CustomReports_Ta
SET vchFilter = REPLACE(CAST(vchFilter AS nvarchar(max)), '\\Ingl-report\Templates', 'C:\Customer_Templates')
where CAST(vchFilter AS nvarchar(max)) LIKE '%\\Ingl-report\Templates%'

Ohne die CAST Funktion erhalte ich einen Fehler

Datentyp des Arguments ntext ist ungültig für das Argument 1 von replace Funktion.

15voto

Nitika Chopra Punkte 1091

Sie können diese Abfrage verwenden

update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X