2011-08-25 35 views
18

Tengo una tabla temporal y me gustaría crear una vista temporal sobre esta tabla temporal.Crear vista temporal desde una tabla temporal en SQL Server

¿Es posible?

En el ejemplo me gustaría #Top10Records ser una vista en lugar de una tabla siguiente para que llegue

select * into #Top10Records from (select top 10 * from #MytempTable) 

Respuesta

36

Se puede utilizar una expresión de tabla común para hacer eso:

WITH Top10Records AS 
( 
select top 10 * from #MytempTable 
) 
SELECT * FROM Top10Records 
GO 
+1

+1 esa es probablemente la solución más elegante - buena respuesta –

+8

Por supuesto, esto solo funciona para una declaración única después del CTE. No sabemos si el OP tenía la intención de usar la vista temporal en múltiples declaraciones. –

+2

Está destinado a ser utilizado varias veces ya que la #MytempTable cambiará siempre – Thunder

6

Por desgracia, SQL Server no es compatible con esto:

Msg 4103, Nivel 15, Estado 1, Línea 3
"#someView": las vistas temporales no están permitidas.
Msg 4508, nivel 16, estado 1, línea 6
Las vistas o funciones no están permitidas en tablas temporales. Los nombres de tabla que comienzan con '#' indican tablas temporales.

Cuestiones relacionadas