Estaba intentando seleccionar ... en una tabla temporal #TempTable en sp_Executedsql. No está insertado correctamente o no, pero hay mensajes escritos allí (359 fila (s) afectados) que significa insertado con éxito? escritura abajoEjecute sp_executeSql para seleccionar ... en #table pero no puede seleccionar los datos de la tabla de temperatura
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;
Después de ejecutada, su yo retorno de mensajes (359 fila (s) affected). A continuación, cuando intentes seleccionar los datos de #TempTable.
Select * From #TempTable;
Su Regrésame:
Msg 208, Level 16, State 0, Line 2
Invalid object name '#TempTable'.
Se sospecha que su única la sección de trabajo 'seleccionar' solamente. La inserción no está funcionando. ¿cómo solucionarlo?
Creo que la palabra "alcance" sería mejor. 'DECLARE @sql NVARCHAR (MAX); SET @sql = 'SELECCIONAR @@ SPID'; EJECUTAR sp_executesql @sql; SELECCIONE @@ SPID' –
Gracias @Michal, ya recordé este método de uso. Gracias de nuevo – Worgon
La cuestión era cómo solucionarlo. No por qué se rompe. Proporcioné la respuesta correcta a continuación. 'INSERT INTO @tmpTbl EXEC sp_executesql @ sql' –