Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Insert into desde otra tabla

Estas en el tema de Insert into desde otra tabla en el foro de SQL Server en Foros del Web. Buenos días, Estoy intentando rellenar una tabla con datos de otra. He consultado en internet y aparentemente parece sencillo, pero he probado mil maneras y ...
  #1 (permalink)  
Antiguo 14/11/2012, 04:18
 
Fecha de Ingreso: febrero-2011
Mensajes: 26
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Insert into desde otra tabla

Buenos días,

Estoy intentando rellenar una tabla con datos de otra. He consultado en internet y aparentemente parece sencillo, pero he probado mil maneras y me arroja error.

El caso es el siguiente, tengo una tablaA, y otra tablaB, y quiero añadir las filas de la tablaB a la tablaA (tienen el mismo número de campos y del mismo tipo).

Para hacer pruebas he utilizado una sentencia sencillita:

Código:
INSERT INTO A_prueba(idGestionAnterior, idEmpresa, idContrato)
SELECT idGestionAnterior, idempresa, idContrato
FROM importacion
Y el error que me da:
Mens. 207, Nivel 16, Estado 1, Línea 2
El nombre de columna 'idempresa' no es válido.
Mens. 207, Nivel 16, Estado 1, Línea 2
El nombre de columna 'idContrato' no es válido.


He comprobado que los campos están bien escritos, el tipo de campo es el mismo, a escribir el sql de distintas maneras pero no hay manera...
¿Alguna idea?

La tabla "importacion", por si pudiera tener algo que ver, es una importacion de un .csv. La BD es de SQL Server 2005

Decir que para tan solo un campo, la copia de una tabla a otra la ha hecho, pero en cuanto le pongo que copie varios campos (como el ejemplo anterior) es cuando se le atraganta.

Gracias de antemano!
  #2 (permalink)  
Antiguo 14/11/2012, 05:22
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Insert into desde otra tabla

¿Las columnas 'idempresa' y 'idContrato' existen en ambas tablas?

Si la respuesta es sí- ¿la siguiente consulta funciona sin errores?
Código SQL:
Ver original
  1. SELECT idGestionAnterior, idempresa, idContrato
  2. FROM importacion
La siguienta instrucción funciona bién?
Código SQL:
Ver original
  1. INSERT INTO A_prueba(idGestionAnterior, idEmpresa, idContrato)
  2. SELECT 1,1,1;
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 14/11/2012, 05:44
 
Fecha de Ingreso: febrero-2011
Mensajes: 26
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Insert into desde otra tabla

Hola Geri! gracias por contestar,

Cita:
Si la respuesta es sí- ¿la siguiente consulta funciona sin errores?
Código SQL:
Ver original
  1. SELECT idGestionAnterior, idempresa, idContrato
  2. FROM importacion
No, no funciona; que curioso no había caido en comprobar eso, de hecho solo funciona con el SELECT idGestionAnterior, para el resto de campos arroja el error.

Cita:
La siguienta instrucción funciona bién?
Código SQL:
Ver original
  1. INSERT INTO A_prueba(idGestionAnterior, idEmpresa, idContrato)
  2. SELECT 1,1,1;
Esta instruccion si que funciona

Por lo que veo entonces, el problema está en la tabla "importacion", la que se ha creado con la importación del .csv... ¿Tengo que añadirle alguna propiedad a la tabla? ¿O a los campos? Es curioso que solo reconoce el primer campo de la tabla
  #4 (permalink)  
Antiguo 14/11/2012, 07:56
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Insert into desde otra tabla

No es obligatorio que los nombres de las columnas sean idénticos:
En el Select pon los nombres de las columnas de importacion,
y en el Insert Into los nombres de las columnas de A_prueba;
por supuesto que en el mismo orden.
No debes cambiar ninguna propiedad de las definiciones del sistema.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Última edición por GeriReshef; 14/11/2012 a las 08:12
  #5 (permalink)  
Antiguo 14/11/2012, 12:09
 
Fecha de Ingreso: febrero-2011
Mensajes: 26
Antigüedad: 13 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Insert into desde otra tabla

Cita:
No es obligatorio que los nombres de las columnas sean idénticos:En el Select pon los nombres de las columnas de importacion,
y en el Insert Into los nombres de las columnas de A_prueba;
por supuesto que en el mismo orden.
Sí en mi caso me coinciden porque ambas tablas tenían los mismos campos, en la 1ªTabla tenía que insertar los de la 2ªTabla.


Ya di con la solución al problema, era la importación de los datos. Resulta que mi tabla "importacion", la 1ª fila tengo puestos los nombres de columnas, y a la hora de importar le pedía que los mantuviera para así yo poder guiarme mejor con los mismos encabezados de columna.

Realizando la misma importación del .csv y dejando que el SQL Server ponga el nombre a los campos automáticamente ya me permite trabajar con ellos y hacer consultas select en esa tabla y demás.

Gracias por la ayuda, como no había trabajado mucho con SQL Server pensaba que iba a ser cosa de la consulta y estaba mareando la perdiz todo el rato :D

Tema solucionado!! :)

Etiquetas: insert, select, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:06.