1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
DECLARE @tables_a_traiter CHAR(10)
DECLARE @champ_a_traiter VARCHAR(50)
DECLARE @chaine_a_chercher VARCHAR(10)
DECLARE @chaine_de_remplacement VARCHAR(10)
DECLARE @requete varchar(200)
DECLARE Cursor_tables_a_traiter CURSOR
FOR SELECT Table_,Champ
FROM travail..Accent_champ$
OPEN Cursor_tables_a_traiter
FETCH NEXT FROM Cursor_tables_a_traiter
INTO @tables_a_traiter, @champ_a_traiter
WHILE(@@FETCH_STATUS = 0)
BEGIN
DECLARE Cursor_Caracteres_a_traiter CURSOR
FOR SELECT OldCarac,NewCarac
FROM travail..Accent_caractere$
OPEN Cursor_Caracteres_a_traiter
FETCH NEXT FROM Cursor_Caracteres_a_traiter
INTO @chaine_a_chercher, @chaine_de_remplacement
WHILE(@@FETCH_STATUS = 0)
BEGIN
set @requete =''
set @requete = 'UPDATE SELL.SYSADM.' + @tables_a_traiter
set @requete = @requete + ' SET ' + @champ_a_traiter + ' = REPLACE('
+ @champ_a_traiter + ','''
+ @chaine_a_chercher + ''''+ ','''
+ @chaine_de_remplacement + '''' + ')'
print @requete
exec @requete
FETCH NEXT FROM Cursor_Caracteres_a_traiter
INTO @chaine_a_chercher, @chaine_de_remplacement
END
CLOSE Cursor_Caracteres_a_traiter
DEALLOCATE Cursor_Caracteres_a_traiter
FETCH NEXT FROM Cursor_tables_a_traiter
INTO @tables_a_traiter, @champ_a_traiter
END
CLOSE Cursor_tables_a_traiter
DEALLOCATE Cursor_tables_a_traiter |