web-dev-qa-db-ja.com

SQL Serverの既存の一時テーブルに挿入する方法

2つのselectステートメントを実行して、データを一時テーブルに送り込むクエリを作成しようとしています。最初のクエリには5つの列がありますが、2番目のクエリには1つの列しかありません。

最初の方法は次の方法で実現できます。

Select a.ID AS [a], 
       b.ID AS [b], 
       c.ID AS [c]
INTO #testingTemp
FROM
....

これで、2番目のクエリでデータを#testingTempに送り込もうとしています。

Select z.ID AS [c]
INTO #testingTemp
FROM
....  

しかし、私の問題はThere is already an object named #testingTemp in the databaseですか?

インターネットで解決策を検索しようとしましたが、ほとんどの人は私の最初の部分で問題に直面していますが、2番目のクエリで一時テーブルを拡張しようとしている人はいません。

7
SuicideSheep

それをinsert intoステートメントに変更します。それ以外の場合は、同じ一時テーブルを複数回作成しますが、これは許可されていません。

Insert into #testingTemp (a,b,c)
Select a.ID AS [a], 
       b.ID AS [b], 
       c.ID AS [c]
FROM
17
schliemann

2番目のクエリは、通常の挿入でなければなりません。

    INSERT INTO #testingTemp
    (a,
     b,
     c)
   select etc. 

あなたが終わったらtemptableを落とすことを忘れないでください。

6
Luuk

そして、すべてを挿入したい場合:

INSERT INTO #TempTableName
SELECT * FROM MyTable
2
sandiejat