Prueba asi:
Código SQL:
Ver originalCREATE proc sp
@pam VARCHAR(50)
AS
BEGIN
DECLARE @SQL VARCHAR(25),
@SQLSTRING NVARCHAR(255)
SET @SQL='and cod_departamento=' + @pam
SET @SQLSTRING 'select *
into #pti_matriz_estadistica
from pti_matriz_estadistica
where cod_presupuesto = 2007011 ' + @SQL + '
SELECT * FROM #pti_matriz_estadistica'
EXEC sp_executesql @SQLSTRING
END
Cuando ejecutas un T-SQL dinámico se crea una nueva sesion, y sólo en esa sesion existirá tu tabla temporal, por eso te da error.