PDA

Visualizza la versione completa : [SQL SERVER]: Usare il comando Replace in un UPDATE


Rolling
24-07-2006, 21:24
Ciao Ragazzi/e.
Spero che qualcuno possa aiutarmi, anche perché sono 2 giorni che sbatto la testa sul problema.

Ho un database che gira sotto Microsoft SQL. Una delle tabelle è grosso modo cosi composta:

id | Path | Img
1 | e:/programmi/docs/file1.eff | img1.gif
2 | e:/programmi/docs/file2.eff | img2.gif
3 | e:/programmi/docs/file3.eff | img3.gif

Supponendo di aver modificato il percorso di destinazione dei file, ho il bisogno di dover modificare tutti i campi Path relativi ad oltre 1500 record presenti sulla table. Ho immediatamente pensato di fare una replace, ma le poche informazioni che ho trovato in rete non mi hanno aiutato.

Non sono molto pratico di SQL, ma immagino che sia necessario fare una UPDATE accodando il commando REPLACE tipo:

UPDATE nome_table set (PATH= REPLACE(path,’ e:/programmi/docs/’,’d:/file/docs/’))

Ma non sono convinto della sintassi.
Spero che qualcuno mi possa aiutare.
Grazie.

teosteo
28-07-2006, 13:32
Devi fare semplicemente un UPDATE

quindi la sintassi è

UPDATE nometabella set nomecampo = 'nuovastringa'

questo lo fa su tutti i record del db

se invece vuoi un filtro aggiungi WHERE

tipo

UPDATE nometabella set nomecampo = 'nuovastringa' WHERE nomecampo = 'vecchiastringa'

kadorit
28-07-2006, 17:23
Se faccio un normale update ho lo stesso valore per tutti i record , iominvece voglio che il primo record deve avere valore 1 il secondo valore 2 e cosi via.
Una soluzione approssimata è:

use prova

UPDATE table_1

SET count1 = SubQuery.Rank

FROM

(

SELECT row_number() OVER (order BY id asc) AS Rank

FROM table_1

) SubQuery


Come risultato ho su quattro righe 1 4 1 4 mentre io volevo come risultato 1 2 3 4

Loading