正嘗試將...選擇到temp表中#TempTable中的sp_Executedsql中。 不是它成功插入或沒有,但有消息寫在 (359行受影響),意味着成功插入? 文件下面對select ...執行sp_executeSql進入#table但無法選擇Temp表數據
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;
執行後,其返回我的消息(359行(S)的影響)。 接下來嘗試從#TempTable中選擇數據。
Select * From #TempTable;
其返回我:
Msg 208, Level 16, State 0, Line 2
Invalid object name '#TempTable'.
只是懷疑它的工作只是 '選擇' 一節。插入不起作用。 如何修復它?
我認爲這個詞的「範圍」會更好。 'DECLARE @sql NVARCHAR(MAX); SET @sql ='SELECT @@ SPID'; EXECUTE sp_executesql @sql; SELECT @@ SPID' –
謝謝@Michal,我記得已經使用這種方法。再次感謝 – Worgon
問題是如何解決它。不是爲什麼它打破。我在下面提供了正確的答案。 'INSERT INTO @tmpTbl EXEC sp_executesql @ sql' –