一時テーブルがあり、この一時テーブルの一時ビューを作成したいと考えています。
出来ますか?
次の例では、#Top10Records
をテーブルではなくビューにして、
select * into #Top10Records from (select top 10 * from #MytempTable)
残念ながら、SQL Serverはこれをサポートしていません。
メッセージ4103、レベル15、状態1、行3
"#someView":一時的なビューは許可されていません。
メッセージ4508、レベル16、状態1、行6
ビューまたは関数は一時テーブルでは許可されていません。 「#」で始まるテーブル名は一時テーブルを示します。
これを行うには、共通テーブル式を使用できます。
WITH Top10Records AS
(
select top 10 * from #MytempTable
)
SELECT * FROM Top10Records
GO
SQL Serverは一時ビュー自体をサポートしていないため、上記のDarylによって述べられているように、おそらく共通テーブル式が適しています。ただし、CTEの制限の1つは、バッチ内の複数のクエリで使用できないことです。ただし、標準ビューを作成し、必要に応じて使用して、バッチ/トランザクションの最後にドロップするだけです。 (私はOPの質問が一時的なビューを作成できるかどうかを知っていますが、これも適用される可能性があります-スキーマの変更が必要ですが、すべての意図と目的に対して一時的な変更が必要です)。