Come utilizzare la funzione Replace nei campi di TEXT e NTEXT di un database SQL Server

di | 12 Marzo 2016
Spread the love

Per aggiornare il contenuto di un campo stringa all’interno di una tabella SQL, si può utilizzare la funzione Replace.

La sintassi dell’istruzione Replace in SQL Server è abbastanza semplice:

Replace (campo,”valore_da_cercare”,”valore_da_sostituire”).

Ad esempio se volessimo aggiornare nella tabella Articoli il campo Descrizione sostituendo la il termine inserito erroneamente “scatola” con “confezione” per gli articoli della famiglia “CNF”, l’istruzione da digitare diventa la seguente:

UPDATE Articoli SET Descrizione = Replace(Descrizione,”scatola”,”confezione”) where Famiglia= ‘CNF’.

Con questa semplice istruzione sarà possibile sostituire i campi errati in numerosi records.

Le difficoltà nascono quando il testo da sostituire è contenuto in un campo di tipo TEXT o NTEXT. In questi casi l’istruzione Replace non funziona. Il problema può essere aggirato mediante l’utilizzo della funzione CAST, trasformando nella query stessa il campo TEXT o NTEXT in un campo VARCHAR o NVARCHAR.

Nel nostro esempio se il campo descrizione fosse un campo di tipo NTEXT la nostra istruzione diventerebbe la seguente:

UPDATE Articoli SET Descrizione = REPLACE(CAST(Descrizione AS NVARCHAR(MAX)),’scatola ‘,’confezione ‘) where Famiglia = ‘CNF