No need to create a table in SQL use a temp table in the stored proc. If you need to pass in the zips as string use this. If you have a table valued parameter you can pass them in as a table.
    CREATE PROCEDURE spCheckZip
@Zips varchar(256)  --space delimited list of zips
AS
IF OBJECT_ID('tempdb..#ZipCheck') IS NOT NULL 
 DROP TABLE #ZipCheck
CREATE TABLE #ZipCheck (zipcode string) --Note string not int for zips with leading 0's.
IF CharIndex(' ',@Zips) > 1
BEGIN
   Declare @StartPos as int
   Declare @ZipCd As Varchar(16)
   set @StartPos = 2
   set  @ZipCd = substring(@Zips,1,CharIndex(',',@Zips))
   WHILE @StartPos > 1 and @StartPos < Len(@Zips)
   BEGIN
   INSERT Into #ZipCheck (zipcode) 
   SELECT Substring(@ZipCd,1,len(@ZipCd)-1)
   SET @StartPos = charindex(',',@Zips, @StartPos)+1
   SET @ZipCd = substring(@Zips,@StartPos,CharIndex(',',@Zips))
   END
END
SELECT ZipCode 
FROM ZipCheck LEFT JOIN YourZipTable on ZipCheck.zipcode=YourZipTable.YourZipField
WHERE YourZipTable.YourZipField IS NULL