• This should have no length limitations since the result is a string.

    DECLARE

    @s-2 VARCHAR(50)

    ,@Split CHAR(1)

    ,@X XML

    ,@strNewValue VARCHAR(50)

    SET @s-2 = 0008.22816 -->> 0000008.0022816

    SET @s-2 = 069.3142 -->> 0000069.0003142

    SET @Split = '.'

    --split the two parts into separate elements using the XML reader

    SELECT @X = CONVERT(XML,'<root><s>' + REPLACE(@S,@Split,'</s><s>')+'</s></root>')

    SELECT

    --recombine the elements

    @strNewValue = COALESCE(@strNewValue + @Split,'')

    + CAST(Result.PaddedValue AS VARCHAR(MAX))

    FROM

    (

    SELECT

    --add the padding

    REPLICATE('0',7-LEN(CAST(Value AS INT)))+Value AS PaddedValue

    FROM

    (

    --make some table rows

    SELECT T.c.value('.','VARCHAR(MAX)') AS [Value] FROM @X.nodes('/root/s') T (c)

    ) Element

    ) Result

    SELECT

    @strNewValue AS NewValue