Mam tabelę ( SQL Sever
), która odwołuje się do ścieżek ( UNC
lub w inny sposób), ale teraz ścieżka się zmieni.
W kolumnie ścieżki mam wiele rekordów i muszę zmienić tylko część ścieżki, ale nie całą ścieżkę. I muszę zmienić ten sam ciąg na nowy, w każdym rekordzie.
Jak mogę to zrobić za pomocą prostego update
?
sql
sql-server
database
database-administration
Iralda Mitro
źródło
źródło
where path like '%oldstring%'
gdyby było dużo danych.źródło
foo
jest zastępowana lubbar
(przepraszam ponownie)Próbowałem powyższego, ale nie przyniosło to prawidłowego wyniku. Następujące działa:
źródło
where path like '%oldstring%'
?Bez
CAST
funkcji dostałem błądTyp danych argumentu
ntext
jest nieprawidłowy dla argumentu 1replace
funkcji.źródło
Możesz użyć tego zapytania
źródło
wszystkie odpowiedzi są świetne, ale chcę dać ci dobry przykład
ta instrukcja SQL zastąpi istnienie słowa „tabela” (drugi parametr) wewnątrz danej instrukcji (pierwszy parametr) trzecim parametrem
wartość początkowa to
this value from table
ale po wykonaniu funkcji zamiany będziethis value from table but updated
a oto prawdziwy przykład
na przykład, jeśli mamy tę wartość
stanie się
mam nadzieję, że daje to lepszą wizualizację
źródło
źródło
Jeśli typ kolumny docelowej jest inny niż tekst typu varchar / nvarchar , musimy rzutować wartość kolumny jako ciąg znaków, a następnie przekonwertować ją jako:
źródło
musisz zastąpić ścieżkę za pomocą funkcji replace.
tutaj
column_name
odnosi się do tej kolumny, którą chcesz zmienić.Mam nadzieję, że to zadziała.
źródło
Możesz także zamienić duży tekst na szablon e-maila w czasie wykonywania, oto prosty przykład.
źródło