Tambien podes usar SELECT INTO para que te cree la tabla automaticamente y no tenes que hacer el create table a mano. Y si la tabla es temporal y solo la vas a usar en el procedimiento almacenado, te conviene marcarla como tabla temporal con # antes del nombre de la tabla; con esto si te olvidas de hacer el drop de la tabla el SQL Server lo hace automatico cuando te desconectas.
Código SQL
[-]
SELECT DISTINCT max(dbo.documentos_lin.fec) as fecha,
substring(dbo.documentos_lin.codigo,1,6) as codigo
INTO #temp_br
FROM dbo.documentos_lin
WHERE
(dbo.documentos_lin.sw = 1) AND
(dbo.documentos_lin.tipo IN ('80','81','82','83'))
GROUP BY substring(dbo.documentos_lin.codigo,1,6)
-- ACA PODES TRABAJAR CON LA TABLA TEMPORAL
select * from #temp_br
-- SIEMPRE AL FINAL DEBERIAS BORRARLA
drop table #temp_br