在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的变体?
由于
答案 0 :(得分:1)
解决方案是:
replace(REPLACE(code, '.texter', 'bluenose'), ' texter', 'bluenose')
感谢Sean Lange的回答!