Está en la página 1de 6

Escenario

Les planteo el siguiente escenario. Tengo un servidor principal con SQL Server 2005 como
manejador de base de datos. Adicionalmente, tengo instalado en otras PC's "terminales" un
sistema que corre, de manera local, conectado a una base de datos MySQL instalada en dicho
terminal. Porque no en red? Porque quiero que este siga funcionando independientemente si "se
va" la red, existe un trfico excesivo o decenas de problemas extras que pueden ocurrir en una
aplicacin "en lnea". El punto central del problema es el siguiente Como hago para pasar toda
esa informacin capturada en los terminales en la base de datos MySQL y trasladarla a mi servidor
central con el SQL Server 2005?. A primera idea una solucin. Programar una aplicacin que
acceda a la base Mysql, lea los datos y los inserte mediante consultas SQL en el servidor central
con SQL 2005. Pero, Debe existir una solucin mas sencilla, rpida y elegante? Ese es el tema del
que trataremos esta vez. Este se llama servidores vinculados en SQL Server 2005.
Se capto la idea?
Quiero pasar datos de Mysql a SQL 2005.
Que es servidores vinculados?
El mismo nombre es bastante descriptivo. Aado una base de datos externa al SQL 2005 y la hago
accesible, entindase puedo aplicar sobre ella consultas SQL como insert's, update's o delete's.
Como lo hago?
Paso 1 : Instalando los drivers de MySQL ODBC que me permita manejar la base Mysql.
Ubicacin : En el servidor central donde esta la base SQL Server 2005
Debes bajar el Conector ODBC para MySQL de la siguiente web :
http://dev.mysql.com/downloads/connector/odbc/
Descarga el que se ajuste a tu Windows, ya se da 32 o 64 bits. Solo hay que instalarlo, lo cul no
representa mayor problema ya que es la tpica instalacin "siguiente-siguiente".
Paso 2 : Creando el ODBC y configurando para que apunte al servidor Mysql y a la base a
manipular.
Ubicacin : En el servidor central donde esta la base SQL Server 2005
Entra al "Panel de Control" y busca "Herramientas Administrativas". Entra en este y aparecer
"Orgenes de datos ODBC".

Se abrir la siguiente ventana. Busca el botn "Agregar".

Clic sobre Mysql ODBC 3.51 driver (que es lo que instalaste en el paso 1). Luego sobre finalizar.

Se abrir el conector ODBC del MySQL. En este debes definir los parmetros de conexin a tu base
de datos MySQL. Simplemente agrega el nombre de tu servidor, tu user y password. No olvides
colocar el nombre de la conexin (Data Source Name). Lo vamos a usar en el Paso 3. Sugiero
"MySQL_LINK".

Paso 3 : Vinculando el servidor Mysql con SQL Server 2005


Ubicacin : En el servidor central donde esta la base SQL Server 2005
Entramos al administrador coorporativo del SQL Server 2005 y buscamos la opcin "Objetos del
servidor". Dentro existe una subcarpeta llamada "Servidores vinculados".

Hacemos clic derecho sobre Servidores vinculados y


buscamos la opcin "Nuevo servidor vinculado".

Se abrir la ventana "Nuevo servidor


vinculado" donde debes colocar los parametros para conectarse con la base MySQL.
Marcas la opcin "Otro origen de datos" . Debers colocar los siguientes parmetros.

Servidor vinculado : LINKED_MYSQL (coloca el nombre que desees)


Proveedor : Microsoft OLE DB Provider for ODBC Drivers.
Nombre del Producto : MySQL
Origen de datos : MySQL_LINK (Ojo: Este es el nombre del ODBC que creaste en el paso 2,
colocale el que tu hayas colocado.)
Cadena de proveedor : ODBC:DSN=MySQL_LINK::Table=aaa (el valor aaa es una tabla de la base
MySQL, coloca cualquiera de las tablas de tu base. DSN es el nombre del ODBC que creaste en el
paso 2)
Catlogo : pyp1 (nombre de la base de datos a la cul quieras conectarte)

Dentro de la misma ventana, clic en la ficha "Seguridad" para que establecer con que user y
password nos vamos a conectar. Clic en "Se establecern usando este contexto de seguridad" y
colocamos el user y password. Luego clic en el botn "Aceptar". Eso es todo, ya tenemos
vinculado nuestro servidor MySQL con SQL 2005.

Paso 4 : Probando consultas SQL en el servidor vinculado.


Ubicacin : En el servidor central donde esta la base SQL Server 2005
Vayamos a probar si podemos hacer consultas en MySQL.
Ejecutamos exec sp_Tables_Ex 'LINKED_MYSQL' (Devolvemos informacin acerca de las tablas
de el servidor que hemos vinculado.LINKED_MYSQL es el nombre del servidor vinculado que hemos
creado). Se deben mostrar las tablas del servidor vinculado.

Veamos algunos ejemplos de


sentencias SQL con openquery.
Si quiero mostrar datos de las tablas?
select * from openquery (LINKED_MYSQL,'select * from aaa')
Si quiere eliminar los datos de un tabla?

Delete openquery (LINKED_MYSQL,'select * from aaa'). Borramos todos los datos de la tabla
'aaa'!
Si quiero insertar datos en dicha tabla?
insert into openquery(LINKED_MYSQL,'select * FROM aaa')
(Field1, Field2,...)
SELECT Field1, Field2,...
FROM Tabla
Y para actualizar datos?
Update openquery(LINKED_MYSQL,'Select * from aaa') SET Cod_Ind = 7
WHERE Cod_Ind = 7.5
Para terminar en este post existe ms ejemplos de sentencias SQL con OpenQuery y servidor
vinculados. Es un gran post con bastantes ejemplos, me ayudo en mi trabajo as que se los
recomiendo :
http://www.forosdelweb.com/f21/como-hacer-insert-liskserver-por-openquery-238208/
Espero que este tema ayude a muchos que como yo estn en busca de una forma segura y sencilla
de conectar Mysql con SQL Server.

También podría gustarte