sp_Executedsqlのテンポラリテーブル#TempTableを選択しようとしていました。 正常に挿入されていないか、そこにそこにメッセージが書き込まれました。 (359行が影響を受けています)は、挿入が成功したことを意味しますか?#tableにselect ...のsp_executeSqlを実行しますが、テンポラリテーブルデータを選択できません。
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行(複数可)の影響を受けます)。 次へ#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' –