Saltar al contenido

¿Cómo consultar desde un servidor vinculado a través de un servidor vinculado en el servidor sql?

Posterior a buscar en varios repositorios y sitios webs de internet al terminar descubrimos la respuesta que te compartimos más adelante.

Solución:

Desafortunadamente, con las condiciones que ha puesto en su pregunta, no hay forma de lograr lo que desea.

SQL Server tendría que ser compatible 5 denominación de piezas como:

SELECT *
FROM server1.server2.database.schema.table;

Lo cual claramente no va a funcionar.

Si no tiene miedo de un poco de SQL dinámico, podría usar algo como esto:

DECLARE @cmd nvarchar(max) = N'
DECLARE @cmd nvarchar(max) = N''
SELECT @@SERVERNAME; --this would be where your query goes.
'';
EXEC (@cmd) AT linked_server_2;
';
EXEC (@cmd) AT linked_server_1;

Esencialmente, el código anterior ejecuta un SQL dinámico string sobre linked_server_1pero el SQL dinámico es en realidad un SQL dinámico incrustado stringque ejecuta una consulta en linked_server_2.

Lo mejor que puede hacer es agregar un servidor vinculado del servidor 1 al servidor 3 y usar un CUATRO convención de nomenclatura de piezas.

select column_name from [linkedserver3].[databasename].[schemaName].[object_name]

Para servidor vinculado – El optimizador de consultas crea un plan de ejecución observando la nomenclatura de la consulta y la divide en consultas remotas y locales. Las consultas locales se ejecutan localmente y los datos de las consultas remotas se recopilan de los servidores remotos, se limpian localmente, se combinan y se presentan al usuario final como un único conjunto de registros.

Para OPENQUERY – Ejecuta la consulta de paso a través especificada en el servidor vinculado especificado. SQL Server envía consultas de paso a través como cadenas de consulta no interpretadas a un origen de datos OLE DB. Por lo tanto, SQL no aplicará ningún tipo de lógica en la consulta y no intentará estimar lo que haría esa consulta, simplemente pasaría la consulta especificada tal como está al servidor vinculado de destino. Las consultas abiertas son útiles cuando no hace referencia a varios servidores en una consulta. Generalmente es rápido ya que SQL no lo divide en múltiples operaciones y no realiza ninguna acción local en el resultado recibido.

Como nota al margen, consulte

  • ¿Cuál es más eficiente: seleccionar del servidor vinculado o insertar en el servidor vinculado?
  • Desde CSS: si utiliza consultas de servidor vinculado, debe leer esto…
  • Malas prácticas de bases de datos: abusar de los servidores vinculados

Agregue una vista en el servidor 2 y consulte la vista del servidor 3

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *