如何在MsSQL中执行简单的"查找和替换"?

时间:2020-03-05 18:52:13  来源:igfitidea点击:

问题是很自我解释。我想做一个简单的查找和替换,就像在文本编辑器中处理数据库列中的数据一样(在MS Windows Server 2003上为MsSQL)

解决方案

回答

以下查询将每个" a"字符替换为" b"字符​​。

UPDATE 
    YourTable
SET 
    Column1 = REPLACE(Column1,'a','b')
WHERE 
    Column1 LIKE '%a%'

这在SQL Server 2003上不起作用。

回答

像这样:

BEGIN TRANSACTION; 
UPDATE table_name
  SET column_name=REPLACE(column_name,'text_to_find','replace_with_this'); 
COMMIT TRANSACTION;

示例:将<script ...替换为<a ...以消除JavaScript漏洞

BEGIN TRANSACTION; UPDATE testdb
SET title=REPLACE(title,'script','a'); COMMIT TRANSACTION;

回答

如果我们使用的是SQL Server 2005或者更高版本,则http://www.sqlsharp.com/上还有一个CLR库,该库提供.NET实现的字符串和RegEx函数,具体取决于数据量和数据类型。更易于使用,在某些情况下,.NET字符串操作功能可能比T-SQL更高效。