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 »