none
Ayuda con Insert into entre dos tablas de bases de datos diferentes

    Question

  • Hola chavos como estan, pues primero que nada reciban un cordial saludo. 

    Y pues aqui dando lata con un query que quiero realizar: Insertar datos de una tabla a otra pero que se encuentran en Bases de datos diferentes en el mismo servidor. El problema es que una tabla tiene un campo de más, y al momento de ejecutar el query, no se puede realizar.

    Les dejo un fragmento de código de como lo estoy intentando hacer:

    insert into Otis.dbo.notasporaudiencia(idhashnotes,idhashaudiencia,notes,tiponota,status,fechaalta,fechamodificacion,
    fechabaja,usuarioalta,usuariomodificacion,usuariobaja) 
    select idhashnotes,idhashaudiencia,notes,status,fechaalta,fechamodificacion,fechabaja,usuarioalta,
    usuariomodificacion,usuariobaja from Otis_servidor.dbo.notasporaudiencia

    Saludos, gracias desde ya!!!!


    Raul Baez

    Monday, August 20, 2012 3:41 PM

Answers

  • Te explicas perfectamente, pero la solución es sencilla: o lo quitas de la lista de campos a insertar (con lo que deberá aceptar nulos o tener un valor predeterminado) o incluyes un valor "dummy" en la lista de campos SELECT. Si optas por esta segunda opción, sería algo como

    INSERT Otis.dbo.notasporaudiencia(idhashnotes,idhashaudiencia,notes,tiponota,status,fechaalta,fechamodificacion,fechabaja,usuarioalta,usuariomodificacion,usuariobaja) 
     SELECT idhashnotes,idhashaudiencia,notes, 'valor dummy para campo tiponota', status,fechaalta,fechamodificacion,fechabaja,usuarioalta,usuariomodificacion,usuariobaja FROM Otis_servidor.dbo.notasporaudiencia
    

    Monday, August 20, 2012 4:40 PM

All replies

  • No entiendo cuál es el problema... ¿por qué no te aseguras que el mapeo de los campos es el correcto (parte INSERT - parte SELECT)? Es cuestión de escribir la instrucción correctamente...
    • Proposed as answer by alfred_magno Monday, August 20, 2012 8:27 PM
    Monday, August 20, 2012 4:16 PM
  • Si mira lo que quiero hacer es bueno tengo dos tablas la primera a la que le quiero insertar los datos tiene un campo de mas por que se modifico, y tengo en la otra base de datos la misma tabla pero sin ese campo de mas. "tiponota", entonces al momento de querer hacer el insert no puedo por que esa tabla tiene un campo de más. No se si me explico? :)

    insert into Otis.dbo.notasporaudiencia(idhashnotes,idhashaudiencia,notes,tiponota,status,fechaalta,fechamodificacion,fechabaja,usuarioalta,usuariomodificacion,usuariobaja) 

    select idhashnotes,idhashaudiencia,notes,status,fechaalta,fechamodificacion,fechabaja,usuarioalta,usuariomodificacion,usuariobaja from Otis_servidor.dbo.notasporaudiencia


    Raul Baez

    Monday, August 20, 2012 4:18 PM
  • Te explicas perfectamente, pero la solución es sencilla: o lo quitas de la lista de campos a insertar (con lo que deberá aceptar nulos o tener un valor predeterminado) o incluyes un valor "dummy" en la lista de campos SELECT. Si optas por esta segunda opción, sería algo como

    INSERT Otis.dbo.notasporaudiencia(idhashnotes,idhashaudiencia,notes,tiponota,status,fechaalta,fechamodificacion,fechabaja,usuarioalta,usuariomodificacion,usuariobaja) 
     SELECT idhashnotes,idhashaudiencia,notes, 'valor dummy para campo tiponota', status,fechaalta,fechamodificacion,fechabaja,usuarioalta,usuariomodificacion,usuariobaja FROM Otis_servidor.dbo.notasporaudiencia
    

    Monday, August 20, 2012 4:40 PM
  • Muchas gracias por tu ayuda Carlos, probaré así como me has dicho y te digo si todo funciona perfectamente.

    Saludos!!


    Raul Baez

    Monday, August 20, 2012 7:09 PM
  • Hola, Raul

    • Como mencionan los compañeros puedes insertar un valor por defecto.
    • Eliminar la columna en el query del insert si puedes guardar valores nulos.
    • Si existe alguna forma de poder determinar el “tiponota”, podrías hacerlos por medio de un inner join entre tablas de ambos servidores, posiblemente hacer un like, un sub string y pegarlo con una tabla de catalogo de tiponotas, etc.

    Saludos cordiales


    Ahias Portillo

    Monday, August 27, 2012 3:54 AM