--替换商品名称中指定字符为新字符(只替换最前面的英文部分)
--修改u_ware 表的商品名,会自动触发修改u_ware_q表的商品名(触发器)
--u_chk_ware 表的商品名需要单独修改
--以下代码的作用是:把商品名中前面英文部分中的XX替换为A
declare @strOld varchar(10) = 'XX'
declare @strNew varchar(10) = 'A'
select wareid,a.warename,
case when CHARINDEX(@strOld,SUBSTRING(a.warename,1,PATINDEX('%[^a-z]%', a.warename)-1)) > 0 then STUFF(a.warename,CHARINDEX(@strOld,a.warename),len(@strOld),@strNew) else a.warename end
from u_ware a
where PATINDEX('%[^a-z]%', a.warename)-1 >= 0 -- warename中包含非字母字符
and CHARINDEX(@strOld,a.warename) > 0 -- warename中包含要替换的字符