INSERT Tabla1 SELECT * FROM Tabla2

22/03/2010 - 12:08 por José Antonio Muñoz | Informe spam
Holas a todos,

Quiero importar los datos de una tabla que se ubica en una base de datos a
otra tabla con el mismo nombre pero en otra base de datos teniendo en cuenta
que ambas tablas tienen la misma estructura y algunos campos son calculados.

He intentado hacerlo con la instrucción INSERT BD1..tabla SELECT * FROM
BD2..tabla pero como existen campos calculados me dice que "los valores
especificados no corresponden a la definición de la tabla". Claro está puedo
especificar los campos que tengo que importar (INSERT bd1..tabla (campo1,
campo2, ...) SELECT campo1, campo2, FROM bd2..tabla) pero la tabla
tiene más de 300 campos y la instrucción se me hace muy larga ¿existe otra
manera sin tener que especificar la lista de campos?

saludos,
José Antonio Muñoz
 

Leer las respuestas

#1 Alejandro Mesa
22/03/2010 - 15:01 | Informe spam
José Antonio Muñoz,

no, no existe otra forma. Especifar los nombres de las columnas es una buena
practica.

En SSMS existen varias formas de traer la lista de columnas de una tabla.

En el explorador de objectos, click derecho del raton sobre la tabla donde
deseas insertar (tabla destino), escoje "script table as" - "insert to", esta
accion creara la sentencia insert sin incluir los campos calculados. Luego
reemplaza la clusula VALUES por el select de los campos de la tabla fuente,
haciendo click derecho del raton sobre la tabla fuente y escogiendo "script
table as" - "select to".


AMB


"José Antonio Muñoz" wrote:

Holas a todos,

Quiero importar los datos de una tabla que se ubica en una base de datos a
otra tabla con el mismo nombre pero en otra base de datos teniendo en cuenta
que ambas tablas tienen la misma estructura y algunos campos son calculados.

He intentado hacerlo con la instrucción INSERT BD1..tabla SELECT * FROM
BD2..tabla pero como existen campos calculados me dice que "los valores
especificados no corresponden a la definición de la tabla". Claro está puedo
especificar los campos que tengo que importar (INSERT bd1..tabla (campo1,
campo2, ...) SELECT campo1, campo2, FROM bd2..tabla) pero la tabla
tiene más de 300 campos y la instrucción se me hace muy larga ¿existe otra
manera sin tener que especificar la lista de campos?

saludos,
José Antonio Muñoz

.

Preguntas similares