Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Consulta de 2 servidores

Hola:

Estoy tratando de hacer un reporte y los origenes de datos estan en 2 BD de 2 Servidores SQL2000, cual es la forma de poner el numero o el nombre del servidor en el FROM de la consulta.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer
Responder Con Cita
  #2  
Antiguo 15-08-2005
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Poder: 20
Xianto Va por buen camino
Buenas, imagina que el SQL es un lenguaje que debe tener una conexión activa para realizar su ejecución. Por tal motivo como mucho pudes tener una clausula como USE DB en el cual podrias traer datos de varias DB pero ha de estar en el mismo servidor.

Quizas deberias tener 2 consultas con distintas conexiónes, server1 y server2 y luego mezclarlas entre si para obtener lo que quieres...

Yo haria una query del server2 y luego crearia por medio de una tabla #temporal una tabla con esos datos en el server1, para luego sacar los datos mezclados.

No se hay varias opciones he ideas sobre esto... pero de ninguna manera puedes hacer algo en un FROM ni desde una Query ya que debe llevar implícitamente una conexión.

Si explícas algo más de tu idea y de los datos, quizás entre todos podamos darte una idea más sólida...

Saludetes !
__________________
El diseño dira si tiene futuro...
Responder Con Cita
  #3  
Antiguo 15-08-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
En SQL Server puedes hacer consultas entre servidores (cross linked servers). Tienes que añadir el servidor en cuestion a la lista de servidores enlazados, con el procedimiento:

sp_addlinkedserver [mira la documentacion de los BOL]

Una vez hecho esto, la consulta te sale tan facil como:

SELECT A.campo1, B.Campo2
FROM Servidor1.BaseDatos.dbo.Tabla1 A
INNER JOIN Servidor2.BaseDatos.dbo.Tabla2 B
ON A.llave=B.llave
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #4  
Antiguo 16-08-2005
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Poder: 20
Xianto Va por buen camino
Bueno, esto último a mi me parece que es una opcion que no esta a la altura de la DB actuales, un simple select tardará hasta 8 veces más que ejecutar el mismo select en un analizador de consultas...

Nunca me ha terminado de convencer por varios motivos, pero bue...
__________________
El diseño dira si tiene futuro...
Responder Con Cita
  #5  
Antiguo 17-08-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
ahh??

A la altura de que ? La verdad no entendi mucho el mensaje, pero creo que ese punto podemos debatirlo
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #6  
Antiguo 17-08-2005
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Poder: 20
Xianto Va por buen camino
jejeje... debatir es una palabra perfecta... a que si ???

Perdon por no haber puesto un post mas claro, es que he dejado de fumar y estoy con ganas de comerme al mundo. jejejeej

"Linkear un server no esta a la altura de las DB actuales..."

Con esto quiero expresar que dentro de los servicios que da una DB este es uno de los peores de MSSQL.

Por eso, cada uno puede hablar por 2 cosas, estudios y experiencia... en mi epoca de estudio no existia este servicio y la experiencia me ha dicho que no funciona en absoluto como deberia, por ello, opino que al menos en lo que respecta a mi experiencia con este servicio, es algo no recomendable.
__________________
El diseño dira si tiene futuro...
Responder Con Cita
  #7  
Antiguo 19-08-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
vamos a ver... no se que tengamos por entendido que signifique el linkear los servidores pero: si tenemos dos bases de datos en dos servidores distintos, la unica forma de hacer un cruce de tablas, es a~adiendo un "enlace" de un servidor a otro.

Esta claro que el rendimiento puede disminuir en ese tipo de consulta frente a una que enlace tablas de la misma base de datos o servidor, pero es la unica forma de hacerlo. De hecho, sqlserver ofrece esa ventaja, digamos que competitiva, frente a otros motores de bases de datos como interbase o mysql, que no permiten realizar dicha operacion.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #8  
Antiguo 19-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por hector
De hecho, sqlserver ofrece esa ventaja, digamos que competitiva, frente a otros motores de bases de datos como interbase o mysql, que no permiten realizar dicha operacion.
Bueno, mysql al menos te permite cruzar tablas de distintas bases en el mismo servidor mientras que interbase no.

Pero alguna vez lo mencioné y me "regañaron" arguyendo que tal tipo de cruces no es parte del modelo relacional

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:02:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi