• Quick simple suggestion

    😎

    USE tempdb;

    GO

    SET NOCOUNT ON;

    DECLARE @SAMPLE_DATA TABLE(TSTR VARCHAR(100) NOT NULL);

    INSERT INTO @SAMPLE_DATA(TSTR)

    VALUES ('<key>Children</key><integer>2</integer>')

    ,('<key>Children</key><integer>123</integer>')

    ,('<key>Children</key><integer></integer>')

    ;

    DECLARE @children INT = 4;

    SELECT

    SD.TSTR

    ,SUBSTRING(SD.TSTR,1,(CHARINDEX('<integer>',SD.TSTR,1) + LEN('<integer>') - 1 ))

    + CONVERT(VARCHAR(12),@children,0)

    + SUBSTRING(SD.TSTR,CHARINDEX('</integer>',SD.TSTR,1),LEN(SD.TSTR)) AS OUT_STR

    FROM @SAMPLE_DATA SD;

    Results

    TSTR OUT_STR

    ------------------------------------------ ----------------------------------------

    <key>Children</key><integer>2</integer> <key>Children</key><integer>4</integer>

    <key>Children</key><integer>123</integer> <key>Children</key><integer>4</integer>

    <key>Children</key><integer></integer> <key>Children</key><integer>4</integer>