2017-06-13 18 views
0

ネストされたCTE内のテンポラリテーブルに次のコードのように挿入します。最初のxから2番目の式を選択できますが、一時表には挿入できません。SQL:ネストされた共通テーブル式のテンポラリテーブルへの挿入

実装するには他のロジックがあるので、ネストされたCTEを使用してこれを行う必要があります。私は表現の外に一時テーブルに挿入できることを知っています。これを達成する方法はありますか?助けてください。

答えて

4

SQL Serverは非常に明示的です。クエリは、結果セットを返して結果をクエリに保存することはできません。あなたは簡単に行うことができます

WITH x AS (
     SELECT * FROM MyTable 
    ) 
SELECT x.* 
INTO #temp 
FROM x; 

そして:

SELECT t.* 
FROM #temp t; 

最初のクエリが一時テーブルに結果セットを保存します。 2番目の値はクエリから値を返します。

+0

私は表現の外で行うことができることを知っていると述べました。しかし、私は他のロジックのために入れ子式の中でこれを行う必要があります。私はそれが可能かどうか疑問に思っていた。 – Amir

+0

これを行うための代替手段がないので、私は受け入れており、入れ子にされたCTEを使用せずにこれを行う必要があります – Amir