Je dois remplacer tous les tags iframe, stockés sous nvarchar dans ma base de données. Je peux trouver les entrées en utilisant la question SQL suivante:
SELECT * FROM databasename..VersionedFields WHERE Value LIKE '%<iframe%'
Dites que je veux remplacer le segment de code suivant:
code before iframe <iframe src="yadayada"> </iframe> code after iframe
Avec ça:
code before iframe <a>iframe src="yadayada"</a> code after iframe
Je pense que 2 appels de mise à jour devraient faire
update VersionedFields
set Value = replace(value,'<iframe','<a><iframe')
update VersionedFields
set Value = replace(value,'> </iframe>','</a>')
Vous pouvez le faire avec une instruction UPDATE définissant la valeur avec un REPLACE
UPDATE
Table
SET
Column = Replace(Column, 'find value', 'replacement value')
WHERE
xxx
Vous voudrez être extrêmement prudent en faisant cela! Je recommande fortement de faire une sauvegarde en premier.
update VersionedFields
set Value = replace(replace(value,'<iframe','<a>iframe'), '> </iframe>','</a>')
et vous le faites en un seul passage.
Je venais juste de faire face à un problème similaire. J'ai exporté le contenu de la base de données dans un fichier SQL et utilisé TextEdit pour rechercher et remplacer tout ce dont j'avais besoin. Simplicité ftw!
J'envisagerais d'écrire une fonction de remplacement CLR avec le support RegEx pour ce type de manipulation de chaîne.