找到确切的字符串匹配并在sql server中替换它

时间:2015-01-14 22:09:58

标签: sql-server

在SQL Server 2012中使用替换功能时,是否有(据称)简单的方法来获得完全匹配? (当然,我对其他搜索可能性持开放态度)

例如,我正在使用以下代码在某个时刻抓取包含“texter”的数据库中的所有对象:

select OBJECT_NAME(object_id) name,
       OBJECT_DEFINITION(object_id) code,
       type
into #tester
from sys.objects
where OBJECT_DEFINITION(object_id) LIKE '%texter%'

这似乎不区分.texter,@ texter或stupidtexter。

所以,如果我使用:

update #tester 
set code = REPLACE(code, 'texter', 'bluenose')
where code LIKE '%texter%'

它将用'bluenose'替换'texter'的任何变体

让我们假设我只想替换它的'texter'和'.texter'版本,而不是其他任何东西(注意在每个对象中,对象代码中也可能存在@texter或stupidtexter)。 / p>

有没有办法可以区分'texter',@ texter和stupidtexter的变体?

由于

1 个答案:

答案 0 :(得分:1)

解决方案是:

replace(REPLACE(code, '.texter', 'bluenose'), ' texter', 'bluenose')

感谢Sean Lange的回答!