Servidor SQL procurar e substituir no campo de texto
eu tenho um banco de dados no servidor sql 2005 que foi criado a partir do servidor SQL 2000 e ainda está usando campos de tipo de texto em vez de varchar(max).
preciso de encontrar e substituir uma sequência de caracteres no campo de texto, mas todos os exemplos de como fazer isto que encontrei não parecem funcionar para mim. Parece que o comando UPDATETEXT requer que os dois parâmetros "insert_offset " e" delete_length " sejam definidos explicitamente, mas a string que estou procurando pode aparecer no texto em qualquer ponto ou mesmo em vários pontos da mesma célula. Meu entendimento destes dois parâmetros é que a string im searching para sempre estará no mesmo lugar, de modo que o insert_offset é o número de espaços no texto que o comando UPDATETEXT vai começar a substituir o texto.
exemplo: é necessário encontrar: <u>
e substituí-lo por: <u>
exemplo do campo de texto:
*Everyone in the room was <b><u>tired</u>.</b><br>Then they woke <b><u>up</u>.
Alguém me pode ajudar com isto? Obrigado!
1 answers
Citação: originalmente publicado por fredclown
Se usar o SQL 2005, poderá usar o replace com um tipo de texto. Tudo o que tens fazer é o abaixo ...
Field = replace(cast(campo como varchar (max))),'string' ,'replacement')
Fácil como uma torta. Dois polegares para cima para Fredclown!!! comando trabalha como um encanto para mim também. Presente é o que eu escrevi a minha declaração de atualização para Procurar e substituir num campo de texto em SQL server 2005 database
UPDATE TableName SET DBTextField = REPLACE(CAST(DBTextField AS varchar(MAX))
,'SearchText', 'ReplaceText')
FROM TableName
WHERE CHARINDEX('SearchText',CAST(DBTextField as varchar(MAX)))>0
Nota: esta pode truncar o tamanho de dbfield , mas se é uma longa coluna de texto torná-lo nvarchar(max) e você não deve ter nenhum truncamento!