SQL Server – Linked Server

Written by lopezatienza on 15/07/2012 – 13:45 -

Buenas a tod@s.

Me he encontrado en la situación que necesitaba añadir en un procedimiento almacenado de INSERT de una tabla de una instancia, un INSERT en otra instancia con los parámetros pasados a este procedimiento almacenado.

Para conseguir esto, es necesario configurar un servidor vinculado (Linked Server) en la instancia desde la que necesitamos acceder a la otra, y para ello he necesitado hacer uso de los procedimientos almacenados sp_addlinkedserver y sp_addlinkedsrvlogin.

Primeramente ejecutamos el procedimiento almacenado sp_addlinkedserver:


EXEC sp_addlinkedserver
@server=N'NombreRelativoServidorRemoto',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'192.168.1.200';



De estos parámetros, lo que nos interesa es:

@server - Que es la palabra clave que tomará la instancia local para hacer referencia a la instancia remota.

@datasrc - Aquí podemos utilizar o bien una IP o un nombre por DNS.


A continuación ejecutamos el procedimiento almacenado sp_addlinkedsrvlogin para guardar las credenciales de acceso a la instancia remota:


EXEC sp_addlinkedsrvlogin
@rmtsrvname='NombreRelativoServidorRemoto',
@useself='false',
@locallogin=NULL,
@rmtuser='Usuario',
@rmtpassword='Password';



De estos parámetros, lo que nos interesa es:

@rmtsrvname - El la palabra clave utilizada para el parámetro @server en el procedimiento almacenado sp_addlinkedserver.

@rmtuser - Nombre de Usuario para iniciar sesión en el servidor remoto

@rmtpassword - Contraseña de Usuario para iniciar sesión en el servidor remoto


Ejecutando los dos procedimientos almacenados, podremos ejecutar consultas distribuidas desde la instancia local a la instancia remota:


SELECT * FROM NombreRelativoServidorRemoto.NOMBRE_BASE_DE_DATOS.dbo.TABLA


Espero os sirva de ayuda.

Un saludo.

Autor: Antonio Lopez Atienza


Posted in SQL Server | No Comments »

Leave a Comment

 

RSS
MCC D5E