Combinando datos de diferentes fuentes con OPENQUERY en SQL Server

En ocasiones es necesario acceder a diferentes fuentes de datos para poder obtener la información que necesitamos, y cuando hablo de diferentes fuentes de datos me refiero a que por ejemplo, necesitamos obtener ciertos datos de un servidor por ejemplo MySQL y combinarla con otra que tenemos en el SQL Server, un archivo de texto, una hoja de excel, entre otras.

Pues como les había comentado en un artículo anterior gracias a OPENQUERY es posible acceder a distintas fuentes de datos, lo que nos facilita la tarea de forma genial, si ya tenemos nuestras fuentes configuradas bastará unas líneas de T-SQL para generar el contenido que deseamos. Por ejemplo, en el servidor MySQL tengo un listado de los autores, digamos que este es un servidor compartido con el proveedor de mi tienda de libros y  deseo obtener el nombre y apellido de los autores de los libros que están en la base de datos sin tener que replicar estos datos en una tabla de mi servidor local.

Procederemos desde nuestro SSMS a conectarnos al servidor (si es necesario configurar la fuente de datos podría ser siguiendo el artículo mencionado más arriba)  y bastará con emplear un código similar al siguiente:

USE [tiendaDeLibros]
SELECT Authors.Nombres, Authors.Apellidos, Books.Nombre, Books.Precio FROM dbo.Libros AS Books
JOIN
(SELECT idautores,nombres,apellidos FROM OPENQUERY(MySQLSrv,'SELECT * FROM autores')) AS Authors ON Books.Autor=Authors.idautores
GO

Como ves es simplemente una instrucción JOIN simple combinada con OPENQUERY para obtener el resultado que deseamos. Como imaginarás, un código similar y mediante el uso de transacciones nos permitiría copiar el contenido de una fuente de datos externa a nuestra servidor local, pero eso para otra entrega.

1 pensamiento en “Combinando datos de diferentes fuentes con OPENQUERY en SQL Server

  1. Pingback: Viernes de SQL Server: Usando OPENQUERY | Interoperando ando...