• Am I overthinking?

    EDIT: No, I'm undertesting.

    DECLARE@Searchedchar(1),

    @Newchar(1)

    SET @Searched = 'L'

    SET @New = 'M'

    DECLARE @test-2TABLE(

    stringvarchar(1000))

    INSERT @test-2

    SELECT 'L@*K@*H@/324' AS string

    UNION ALL SELECT '(AF#-AR#)*(Y#+BB#)'

    UNION ALL SELECT 'TT#*(L#+D@)*L@'

    UNION ALL SELECT '((AE#-AR#)*(Y#+A#))/Y#';

    WITH cteTally(n) AS ( SELECT TOP 1000 ROW_NUMBER() OVER( Order BY (SELECT NULL)) FROM master.sys.all_columns),

    Data AS(

    SELECT '+' + string string, n, SUBSTRING( '+' + string, n, 1) ch

    FROM @test-2, cteTally)

    UPDATE t SET string = STUFF( REPLACE( d.string, dp.ch+d.ch+dn.ch, dp.ch+@New+dn.ch),1,1,'')

    FROM @test-2 t

    JOIN Data d ON '+' + t.string = d.string

    JOIN Data dp ON d.string = dp.string

    AND d.n-1 = dp.n

    AND dp.ch LIKE '[^A-Z]'

    JOIN Data dn ON d.string = dn.string

    AND d.n+1 = dn.n

    AND dn.ch IN ( '#', '@', '&')

    WHERE d.ch = @Searched

    SELECT * FROM @test-2

    Luis C.
    General Disclaimer:
    Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?

    How to post data/code on a forum to get the best help: Option 1 / Option 2