• Why would you use string manipulation when it's easier to work directly with the numbers using some math?

    Here's a modification of Eirikur's code.

    USE tempdb;

    GO

    DECLARE @SAMPLE_SIZE INT = 123;

    DECLARE @PADDING CHAR(3) = '000';

    ;WITH T(N) AS (SELECT N FROM (VALUES (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL)) AS X(N))

    ,NUMS(N) AS (SELECT TOP(@SAMPLE_SIZE) ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS N FROM T T1,T T2,T T3,T T4,T T5,T T6,T T7,T T8,T T9)

    SELECT

    NM.N AS INT_NUM

    ,STUFF(@PADDING,LEN(@PADDING)-(LEN(NM.N)-1),LEN(NM.N),NM.N) AS PADDED_NUM

    ,RIGHT( 1000 + NM.N, 3) AS MATH_PADDED_NUM

    FROM NUMS NM;

    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