Como os outros já apontaram com razão - um INT nunca tem zeros à esquerda - ele apenas mantém o valor, isso é tudo (e isso é bom dessa maneira).
Se você precisar de alguma formatação adicional, sempre poderá adicionar uma coluna computada à sua tabela, algo como:
ALTER TABLE dbo.Identitytest
ADD DisplayNumber AS RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED
Desta forma, sua INT IDENTITY será usada como INT e sempre contém o valor numérico, enquanto
DisplayNumber
contém 001, 002, ... 014, 015, .....
e assim por diante - automaticamente, sempre atualizado. Como é um campo persistente, agora faz parte da sua tabela e você pode consultá-lo e até colocar um índice nele para tornar as consultas mais rápidas:
SELECT value FROM dbo.IdentityTest WHERE DisplayNumber = '024'
E, claro, você pode usar praticamente qualquer formatação na definição de sua coluna computada, então você também pode adicionar um prefixo ou algo assim:
ALTER TABLE dbo.Identitytest
ADD DisplayNumber
AS 'ABC-' + RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED
Portanto, neste caso, seu
DisplayNumber
seria ABC-001, ABC-002, ...
e assim por diante. Você obtém o melhor dos dois mundos - mantém sua INT IDENTITY, que é numérica e aumentada automaticamente pelo SQL Server, e pode definir um formato de exibição da maneira que desejar e disponibilizá-lo a qualquer momento.