SQL Server affiche “nom d'objet non Valide '#temp'” lorsque vous travaillez avec une table temporaire

J'ai créé une procédure

create procedure testProcedure_One 
as
DECLARE @Query nvarchar(4000)

begin
SET @Query = 'SELECT * into #temptest FROM  Table1'

Exec sp_Executesql @query

SELECT * FROM #temptest
drop table #temptest
end

Quand je lance la procédure testProcedure_One j'obtiens le message d'erreur:

Invalid object name '#temp'

Mais si j'utilise ##temp means cela fonctionne:

create procedure testProcedure_two 
as
DECLARE @Query nvarchar(4000)

begin

SET @Query = 'SELECT * into ##temptest FROM  Table1'


Exec sp_Executesql @query

SELECT * FROM ##temptest
drop table ##temptest
end

testProcedure_two fonctionne bien

Quel pourrait être le problème? Comment puis-je le résoudre?

OriginalL'auteur Jebli | 2009-08-12