none
join de dos tablas en diferentes bases de datos RRS feed

  • Pregunta

  • Saludos, les escribo porque necesito ayuda con algo que no he podido lograr: y es que me veo en la necesidad de hacer una consulta(query) en SQL SERVER para obtener datos de dos tablas que se encuentran en bases de datos diferentes; he intentado algo como lo siguiente y  me presenta el sigte error:"Conversion failed when converting the varchar value '07002BM   ' to data type int."

    lo que hago es:

    select * from[basedatos1].[dbo].tabla1 as t1 inner join

    [basedatos2].[dbo].tabla 2 as t2

    on(t1.campoclave= t2.campoclave)

    GRACIAS DE ANTEMANO...

    martes, 4 de junio de 2019 14:34

Respuestas

  • Hola jpalbuerne:

    Prueba primero a convertir los campos clave, ya que lo que te comentan es correcto.

    select * from
    [basedatos1].[dbo].tabla1 as t1 inner join [basedatos2].[dbo].tabla2 as t2
    
    on ((cast(t1.campoclave as nvarchar(max)))= (cast(t2.campoclave as nvarchar(max))))

    Dado que el error de conversión solo puede ser por que esta esperando un tipo que no se le proporciona.Y eso solo puede ser en los campos que están mencionados, no en las columnas que devuelve la select.

    martes, 4 de junio de 2019 15:40
  • Revisa que las llaves sean del mismo tipo.

    1. Si la bases de datos están en el mismo server puedes usar Sinónimos.
    2. Si las bases de datos estan en servidores diferentes puedes usar linkedserver.
    • Marcado como respuesta jpalbuerme martes, 4 de junio de 2019 17:30
    martes, 4 de junio de 2019 15:10
  • Este error:

    Conversion failed when converting the varchar value '07002BM   ' to data type int.

    Nada tiene que ver conque las bases sean diferentes, mas bien, esta tratando de convertir en INT una cadena de caracteres.

    Coincido con el comentario de Alexis


    IIslas Master Consultant SQL Server

    • Marcado como respuesta jpalbuerme martes, 4 de junio de 2019 17:29
    martes, 4 de junio de 2019 15:25

Todas las respuestas

  • Revisa que las llaves sean del mismo tipo.

    1. Si la bases de datos están en el mismo server puedes usar Sinónimos.
    2. Si las bases de datos estan en servidores diferentes puedes usar linkedserver.
    • Marcado como respuesta jpalbuerme martes, 4 de junio de 2019 17:30
    martes, 4 de junio de 2019 15:10
  • Este error:

    Conversion failed when converting the varchar value '07002BM   ' to data type int.

    Nada tiene que ver conque las bases sean diferentes, mas bien, esta tratando de convertir en INT una cadena de caracteres.

    Coincido con el comentario de Alexis


    IIslas Master Consultant SQL Server

    • Marcado como respuesta jpalbuerme martes, 4 de junio de 2019 17:29
    martes, 4 de junio de 2019 15:25
  • Hola jpalbuerne:

    Prueba primero a convertir los campos clave, ya que lo que te comentan es correcto.

    select * from
    [basedatos1].[dbo].tabla1 as t1 inner join [basedatos2].[dbo].tabla2 as t2
    
    on ((cast(t1.campoclave as nvarchar(max)))= (cast(t2.campoclave as nvarchar(max))))

    Dado que el error de conversión solo puede ser por que esta esperando un tipo que no se le proporciona.Y eso solo puede ser en los campos que están mencionados, no en las columnas que devuelve la select.

    martes, 4 de junio de 2019 15:40
  • muchas gracias me funciono!
    martes, 4 de junio de 2019 17:28
  • muchas gracias!
    martes, 4 de junio de 2019 17:29
  • muchas gracias! todas las respuestas que me dieron son validas, donde probe el cast  a nvarchar que me comentan mas abajo
    martes, 4 de junio de 2019 17:31