2009-12-03 25 views

Respuesta

12

Puede utilizar sub consultas

SELECT a,b,c INTO NewTable 
FROM (SELECT a,b,c 
FROM TheTable 
WHERE a Is Null) 
+2

¿Por qué usar una subconsulta? es decir, ¿por qué no agregar INTO a la consulta interna? – onedaywhen

+0

Tenga en cuenta que la 'tabla' resultante no tendrá una clave, por lo tanto, no es una tabla en absoluto. – onedaywhen

9

así:

SELECT * 
INTO  NewTable 
FROM  OldTable 
+0

No estoy seguro El acceso realmente * reemplazará * 'NewTable' en esa situación, en realidad puede agregar cosas a la tabla, lo que luego coincidiría completamente con la solicitud del usuario tal como lo entiendo. – Romain

+0

@Romain Muller: ¿Por qué no inicias Acceso y encuentras la respuesta a tu pregunta, en lugar de hablar en voz alta al respecto? –

+2

En realidad, si ejecuta ese SQL en Access QBE, le preguntará si desea reemplazar la tabla existente. Si lo ejecuta con DoCmd.RunSQL con SetWarnings activado, también lo solicitará. Si intenta ejecutarlo en DAO, fallará porque la tabla ya existe. En ningún caso, agregará los registros a una tabla existente. –

0
Select * 
Into newtable 
From somequery 
1

Si desea hacerlo a través de la interfaz de usuario, también puede:

A) Crear y probar la consulta de selección. Guárdalo

B) Cree una consulta de tabla de creación. Cuando se le pregunte qué tablas mostrar, seleccione la pestaña de consultas y su consulta guardada.

C) Dígale el nombre de la tabla que desea crear.

D) Ir hacer café (dependiendo del gusto y el tamaño de la tabla)

3

En primer lugar, crear una tabla con las claves necesarias, las limitaciones, la comprobación de dominio, referencias , etc. Luego use una construcción INSERT INTO..SELECT para poblarlo.

No se deje tentar por las construcciones SELECT..INTO..FROM. La tabla resultante no tendrá claves, por lo tanto, no será una tabla en absoluto. Es mejor comenzar con una tabla adecuada y luego agregar los datos, p. será más fácil atrapar datos malos.

Para un ejemplo de cómo las cosas pueden ir mal con una cláusula de SELECT..INTO: puede resultar en una columna que incluye el valor NULL y si bien después del evento puede cambiar la columna NOT NULL el motor no reemplazará a la NULLs, por lo tanto, terminará con una columna NOT NULL que contiene NULL s!

Considere también crear una tabla 'vista', p. utilizando CREATE VIEW SQL DDL en lugar de una tabla base.

Cuestiones relacionadas