Bonjour à tous !
Je suis novice en Transact-SQL et je bloque sur un problème.
Je souhaite corriger le contenu d'un champ (texte) de l'une de mes tables.
J'ai un champ nommé "VOIE" avec des noms de rue. J'ai créé un nouveau champ nommé "VOIE_NORM" avec le même contenu que "VOIE".
Le champs "VOIE" et "VOIE_NORM" contiennent des noms de rue, par ex. 'BD ST MARTIN'.
Je souhaite corriger le contenu du champ "VOIE_NORM". En reprenant mon exemple, je veux transformer les 'BD ' en 'BOULEVARD ' et transformer les 'ST ' en 'SAINT-'
J'utilise un UPDATE pour ça, voici la première requete que j'ai lancée :
> Une fois que cet Update est exécuté, je vérifie et tout est OK, ma transformation des 'BOULEVARD' s'est bien passée : J'ai 'BOULEVARD ST MARTIN'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 BEGIN TRAN boulevards; UPDATE [BD_AD_V1].[dbo].[TAB_ADR_V2] SET VOIE_NORM = REPLACE(VOIE, 'BD ', 'BOULEVARD ') WHERE VOIE like 'BD%'; COMMIT TRAN boulevards;
J’exécute ensuite un 2nd Update :
> Je vérifie, et là le 'ST' s'est bien transformés en 'SAINT-' mais le 'BOULEVARD' est redevenu 'BD'. Mon premier UPDATE a été annulé !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 BEGIN TRAN saints; UPDATE [BD_AD_V1].[dbo].[TAB_ADR_V2] SET VOIE_NORM = REPLACE(VOIE, ' ST ', ' SAINT-') WHERE VOIE like '% ST %'; COMMIT TRAN saints;
J'ai également essayé cette version de requête mais ça ne marche pas mieux niveau correctifs (l'update précédent est annulé) :
Est-ce que quelqu'un pourrait m'éclairer sur ce problème ? J'ai peut être oublié certaines choses dans mes requêtes mais je ne vois pas où (aucune erreur ne m'est renvoyé dans mon résultat de requête), là je bloque totalement !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 BEGIN TRAN voies; UPDATE [BD_AD_V1].[dbo].[TAB_ADR_V2] SET VOIE_NORM = REPLACE(VOIE, 'BD ', 'BOULEVARD ') WHERE VOIE like 'BD%'; UPDATE [BD_AD_V1].[dbo].[TAB_ADR_V2] SET VOIE_NORM = REPLACE(VOIE, 'BVD ', 'BOULEVARD ') WHERE VOIE like 'BVD %'; UPDATE [BD_AD_V1].[dbo].[TAB_ADR_V2] SET VOIE_NORM = REPLACE(VOIE, ' ST ', ' SAINT-') WHERE VOIE like '% ST %'; COMMIT TRAN voies;
Merci d'avance pour votre aide.
Partager