Let's say I have an int with the value of 1. How can I convert that int to a zero padded string, such as '00000001'?
                +4 
                A: 
                
                
              
            Another way is:
DECLARE @iVal int = 1
select REPLACE(STR(@iVal, 8, 0), ' ', '0')
                  Mitch Wheat
                   2008-11-21 15:55:02
                
              
                +3 
                A: 
                
                
              Declare @MyInt integer Set @MyInt = 123
Declare @StrLen TinyInt Set @StrLen = 8
Select Replace(Str(@MyInt, @StrLen), ' ' , '0')
                  Charles Bretana
                   2008-11-21 15:58:32
                
              This is a much better solution then the accepted answer.  As the size of the int doesn't matter for padding the value.  You have to know what the result is before applying the accepted answer.
                  Brettski
                   2008-11-21 16:41:03
                
                
                A: 
                
                
              
              
            Or if you really want to go hard-core... ;-)
declare @int int
set @int = 1
declare @string varchar(max)
set @string = cast(@int as varchar(max))
declare @length int
set @length = len(@string)
declare @MAX int
set @MAX = 8
if @length < @MAX
begin
    declare @zeros varchar(8)
    set @zeros = ''
    declare @counter int
    set @counter = 0
    while (@counter < (@MAX - @length))
    begin
     set @zeros = @zeros + '0'
     set @counter = @counter + 1
    end
    set @string = @zeros + @string
end
print @string
                
                A: 
                
                
              
            If I'm trying to pad to a specific total length, I use the REPLICATE and DATALENGTH functions, like so:
DECLARE @INT INT
DECLARE @UNPADDED VARCHAR(3)
DECLARE @PADDED VARCHAR(3)
SET @INT = 2
SET @UNPADDED = CONVERT(VARCHAR(3),@INT)
SET @PADDED = REPLICATE('0', 3 - DATALENGTH(@UNPADDED)) + @UNPADDED
SELECT @INT, @UNPADDED, @PADDED
I used variables here for simplicity, but you see, you can specify the final length of the total string and not worry about the size of the INT that you start with as long as it's <= the final string length.
                  Steve Brouillard
                   2008-11-21 16:13:27
                
              
                +1 
                A: 
                
                
              
            I always use:
SET @padded = RIGHT('z0000000000000'
  + convert(varchar(30), @myInt), 8)
The z stops SQL from implicitly coverting the string into an int for the addition/concatenation.
                  David B
                   2009-01-13 16:33:56
                
              
                
                A: 
                
                
              
            If the int can go negative you have a problem, so to get around this I sometimes do this:
DECLARE @iVal int 
set @iVal = -1
    select 
        case 
            when @ival >= 0 then right(replicate('0',8) + cast(@ival as nvarchar(8)),8)
            else '-' + right(replicate('0',8) + cast(@ival*-1 as nvarchar(8)),8)
        end
                  Jim Birchall
                   2009-01-13 17:15:35
                
              
                
                A: 
                
                
              
            This work for me:
SELECT RIGHT('000' + CAST(Table.Field AS VARCHAR(3)),3) FROM Table
                  Bitnius
                   2010-03-07 17:27:43