2017-01-18 3 views
0

変数を使用してMicrosoft SQL Server 2014でテンポラリテーブルを作成しようとしています。Microsoft SQL Serverで変数付きのテンポラリテーブルを作成する

DECLARE @TableName VARCHAR(50) 
SET @TableName = 'MyShema.MyTable' 

EXEC('SELECT * INTO #temp FROM ' + @TableName) 
SELECT * FROM #temp 

しかし、SELECT * FROM #tempInvalid object name '#temp.は、誰もが、私はそれを修正する方法を教えてくださいすることができ、最後の行なりますか?ありがとうございました!

+0

あなたは何を達成しようとしていますか? –

+0

bulkinsertのソースファイル名と宛先テーブルを含むマッピングテーブルがあります。 bulkinsertの前に、一時テーブルでデータをクリーンアップする必要があります。ですから、私はこのマッピングリストをループして '@ TableName'を設定し、一時テーブルを一つずつ作成しようとしています。 –

答えて

1
DECLARE @TableName1 VARCHAR(50) 

SET @TableName1 = 'dbo.encounter' 

EXEC('SELECT * INTO ##temp FROM ' + @TableName1) 

SELECT * FROM ##temp 
0
DECLARE @sql NVARCHAR(MAX); 

    SET @sql = N'SELECT * INTO #temp FROM from MyShema.MyTable ; SELECT * FROM #tmpA'; 

EXEC sp_executesql @sql 
+0

これは同じエラーを返します '無効なオブジェクト名 '#tmp''タスクを実行するために変数' @ TableName'を使用する方法を教えてください。 –

+0

文字列にタイプミスがあります。 SELECT INTO #tempを実行すると、テーブル#tmpAは表示されません。 – DVT

+0

私は、あなたの答えの周りにいくつかの文脈を追加してほしいかもしれません。コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT

1

このリンクをチェックしてください。

http://www.sommarskog.se/dynamic_sql.html#Dyn_table

、動的SQL文で作成された一時テーブルは、その文の 出口でドロップされます。だからこそあなたは誤りを抱えています。

関連する問題