Stavo provando a selezionare ... in una tabella temporanea #TempTable in sp_Executedsql. Non è stato inserito correttamente o no ma ci sono messaggi scritti (359 righe (s) interessate) che significa inserito correttamente? Script sottoEsegui sp_executeSql per selezionare ... in #table ma Impossibile selezionare i dati della tabella temporanea
DECLARE @Sql NVARCHAR(MAX);
SET @Sql = 'select distinct Coloum1,Coloum2 into #TempTable
from SPCTable with(nolock)
where Convert(varchar(10), Date_Tm, 120) Between @Date_From And @Date_To';
SET @Sql = 'DECLARE @Date_From VARCHAR(10);
DECLARE @Date_To VARCHAR(10);
SET @Date_From = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
SET @Date_To = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
'+ @Sql;
EXECUTE sp_executesql @Sql;
Dopo eseguito, la sua mi ritorno sui messaggi (359 row (s) affected). Avanti quando si tenta di selezionare i dati da #TempTable.
Select * From #TempTable;
Its me tornare:
Msg 208, Level 16, State 0, Line 2
Invalid object name '#TempTable'.
Sospettato solo il suo solo la sezione di lavoro 'selezionare'. L'inserto non funziona. come aggiustarlo?
Credo che la parola "scope" sarebbe meglio. 'DECLARE @sql NVARCHAR (MAX); SET @sql = 'SELECT @@ SPID'; EXECUTE sp_executesql @sql; SELECT @@ SPID' –
Grazie a @Michal, ho già ricordato questo metodo di utilizzo. Grazie ancora – Worgon
La domanda era come risolverlo. Non perché la sua rottura. Ho fornito la risposta corretta qui sotto. 'INSERISCI IN @tmpTbl EXEC sp_executesql @ sql' –