Lo que ocupas es aplicarle una funcion tipo LPAD, que te rellene a la izquierda con los caracteres y la cantidad que ud le indique
Código:
CREATE FUNCTION [dbo].[LPAD](@Hilera AS varchar(255), @LongitudFinal as numeric(5), @CaracterRelleno as varchar(1))
RETURNS varchar(255) with schemabinding
BEGIN
Declare @Valor varchar(255)
IF IsNull(@CaracterRelleno, '') = ''
SELECT @CaracterRelleno = ' '
/* Si la longitud final es igual que la longitud de la hilera, devolver la hilera */
IF LEN(@Hilera) = @LongitudFinal
SELECT @Valor = @Hilera
ELSE
/* Si la logitud de la hilera es menor que la longitud final, rellenar con el caracter de relleno */
IF LEN(@Hilera) < @LongitudFinal
SELECT @Valor = Right(Replicate(@CaracterRelleno, @LongitudFinal) + @Hilera, @LongitudFinal)
ELSE
/* Si la longitud de la hilera es mayor que la longitud final, truncar la hilera */
SELECT @Valor = Left(@Hilera, @LongitudFinal)
RETURN @Valor
END
por ejemplo para ejecutarlo seria select dbo.LPAD('2',3,'0') eso te retorna 002