У меня есть таблица с двумя столбцами, ID
и Value
. Я хочу изменить часть некоторых строк во втором столбце.
Пример таблицы:
ID Value
---------------------------------
1 c:\temp\123\abc\111
2 c:\temp\123\abc\222
3 c:\temp\123\abc\333
4 c:\temp\123\abc\444
Теперь 123\
в Value
строке не нужно. Я попробовал UPDATE
и REPLACE
:
UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4
Когда я выполняю скрипт, SQL Server не сообщает об ошибке, но и ничего не обновляет. Это почему?
sql
sql-server
string
sql-server-2008
replace
aston_zh
источник
источник
Ответы:
Вам не нужны подстановочные знаки в
REPLACE
- он просто находит строку, которую вы вводите для второго аргумента, поэтому должно работать следующее:(Я также добавил
\
в замену, поскольку я полагаю, что вам это тоже не нужно)источник
`? isn't that escaping the
символом '`и ошибочным?Попробуйте удалить
%
символы, как показано нижеисточник
Чтобы ускорить выполнение запроса в больших таблицах, где не нужно обновлять каждую строку, вы также можете выбрать только те строки, которые будут изменены:
источник
запрос:
источник
У вас есть одна таблица, где у вас есть код даты, который состоит из семи символов что-то вроде
Теперь вы хотите заменить все
С
Вы должны выполнить SQL-запрос:
источник
Для тех, кто хочет заменить ваш сценарий.
update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%
источник
источник
Вы должны использовать приведенный ниже запрос на обновление
Любой из вышеперечисленных запросов должен работать.
источник
заменить на персидское слово
help: dbo.TblNews - имя таблицы
ключевые слова - имя файла
источник