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_1
pero 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