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