在数据库中搜索并替换部分字符串

时间:2009-03-03 09:45:21

标签: sql sql-server tsql

我需要替换所有iframe标记,在我的数据库中存储为nvarchar。我可以使用以下sql-question找到条目:

SELECT * FROM databasename..VersionedFields WHERE Value LIKE '%<iframe%'

说我想替换以下代码段:

code before iframe <iframe src="yadayada"> </iframe> code after iframe

有了这个:

code before iframe <a>iframe src="yadayada"</a> code after iframe

6 个答案:

答案 0 :(得分:98)

您可以使用UPDATE语句设置值,并使用REPLACE

UPDATE
    Table
SET
    Column = Replace(Column, 'find value', 'replacement value')
WHERE
    xxx

这样做时你会非常小心!我强烈建议先备份。

答案 1 :(得分:84)

我认为应该进行2次更新调用

update VersionedFields
set Value = replace(value,'<iframe','<a><iframe')

update VersionedFields
set Value = replace(value,'> </iframe>','</a>')

答案 2 :(得分:13)

update VersionedFields
set Value = replace(replace(value,'<iframe','<a>iframe'), '> </iframe>','</a>')

你可以一次性完成。

答案 3 :(得分:4)

我刚遇到类似的问题。我将db的内容导出到一个sql文件中,并使用TextEdit查找并替换我需要的所有内容。简单ftw!

答案 4 :(得分:0)

我会考虑使用RegEx支持编写一个CLR替换函数来进行这种字符串操作。

答案 5 :(得分:-1)

更新数据库和 设置fieldName = Replace(fieldName,'FindString','ReplaceString')