2011-11-29 28 views
9

Tengo dos tablas grandes y quiero combinar todos los nombres de columna (no como una vista) en una nueva tabla.Insertar en crear nueva tabla

I no tengo permiso hacer clic derecho sobre cada tabla y seleccione Crear a la escritura, así que me preguntaba si hay una manera de insertar las dos tablas en una nueva tabla sin especificar los tipos de datos de columna?

+0

no puede hacerlo directamente, ya que tendrá que especificar cómo combinar los dos conjuntos de datos. – Viruzzo

+0

@Viruzzo Eso no es necesariamente cierto; puedes usar 'CROSS JOIN' (como mencioné en mi respuesta). –

+0

cierto, pero luego obtendría una tabla con el producto cartesiano de los dos. Supongo que debería aclarar qué tipo de resultado desea. – Viruzzo

Respuesta

13
SELECT top 0 * 
INTO NewTable 
FROM BigTable1 
    CROSS JOIN BigTable2 
+0

Alternativamente, si tiene permisos para el esquema 'INFORMATION_SCHEMA', puede generar un script' CREATE TABLE' mediante una instrucción select en la tabla 'INFORMATION_SCHEMA.COLUMNS', que también contiene los tipos de datos de columna. –

0

Si tiene crear derechos que debe ser capaz de utilizar un:

INSERT INTO MyTable SELECT comunicado para hacer esto.

EDIT:

lo tenía mal

SELECT * INTO MYNEWTABLE FROM MYSOURCETABLE 
+1

'INSERT INTO' no creará una nueva tabla. –

+1

No creo que esto funcione en T-SQL. – Bert

+0

Sí, hace un tiempo, sabía que tenía algo que ver con la declaración de into. ¡Gracias! –

6

Para TSQL,

SELECT ... 
INTO MyTable 
FROM ... 
3

Usted puede utilizar una consulta TSQL SELECT INTO - ver MSDN link.

Cuestiones relacionadas