2011-07-14 14 views
34

Tengo una visión que yo quiero crear una tabla a partir de SQL Enterprise Manager, pero siempre me sale un error al ejecutar esta consulta:crear tabla de Vista

CREATE TABLE A 
AS 
(SELECT top 10 FROM dbo.myView) 

Hasta ahora el error es: " error de sintaxis en 'como' "

La vista es demasiado grande. ¿Es posible usar un top 10?

+0

Y * ¿qué error obtienes *? –

+0

Error de sintaxis en AS – tdjfdjdj

+0

¿Qué error está recibiendo cuando prueba esto? –

Respuesta

66

SQL Server no admite CREATE TABLE AS SELECT.

Utilice esta:

SELECT * 
INTO A 
FROM myview 

o

SELECT TOP 10 
     * 
INTO A 
FROM myview 
ORDER BY 
     id 
+0

VIews a grande para seleccionar *. ¿Cómo puedo decir top 10? – tdjfdjdj

+0

@user: simplemente agrega 'TOP 10' justo después de' SELECT'. – Quassnoi

+2

Ojalá pudiera +1000. Una solución tan brillante. –

3

Si desea crear un nuevo A puede usar INTO;

select * into A from dbo.myView 
9

En SQL SERVER lo haces de esta manera:

SELECT * 
INTO A 
FROM dbo.myView 

Esto creará una nueva tabla A con el contenido de su ver.
Ver here para obtener más información.

2
SELECT * INTO [table_a] FROM dbo.myView 
+2

Ha por qué molestarse ... – mikey

1

Se parece mucho a Oracle, pero eso no funciona en SQL Server.

Puede, en cambio, adoptar la siguiente sintaxis ...

SELECT 
    * 
INTO 
    new_table 
FROM 
    old_source(s) 
2

para crear una tabla de los EE.UU. volar esta sintaxis:

SELECT * 
INTO A 
FROM dbo.myView 
30

Si lo que desea es enganchar el esquema y hacer una mesa vacía fuera de él, utilizar una falsa predicado, así:

SELECT * INTO myNewTable FROM myView WHERE 1=2 
+0

Gracias. Esto era exactamente lo que necesitaba. – MindLoggedOut

+0

Esto es brillantemente simple. ¡Muchas gracias, me ayudaron con exactamente lo que necesitaba! – mshubert12

0
Select 
    MonthEndDate MED, 
    SUM(GrossBalance/1000000) GrossBalance, 
    PortfolioRename PR 
into 
    testDynamic 
from 
    Risk_PortfolioOverview 
    Group By MonthEndDate, PortfolioRename 
0

INSERTAR EN la tabla 2 SELECCIONAR * FROM table1/view1

0

Su pregunta fue oída en este Question.

See this answer will help you. script en esta respuesta, obtén scripts para generar todas las tablas en la base de datos. Si modifica la condición last where, puede obtener scripts para crear tablas a partir de vistas.

The next answer hace que sea más fácil para usted. Puede establecer la tabla o ver el nombre y ejecutar la secuencia de comandos, a continuación, devolver el resultado crear la secuencia de comandos de la tabla para usted.

Cuestiones relacionadas