consulta a diferentes bases de datos

19/02/2008 - 17:01 por Luis Mata | Informe spam
Hola amigos
tengo una consulta
quiero realizar una consulta(suma X) a una tabla en 6 BD diferentes, lo que
hago es crear un cursor con los nombres de las BD y luego desplazarme en
ella concatenando el nombre de la BD y la tabla y luego extrayendo la suma y
guardandolo en una variable

lo que hago es usar el exec(cadena del select) y luego la suma a la variable

se puede realizar esto sin usar el exec()

ose mi variable capturada sea @nombreBD

y hacer esto:

@suma = @suma + (select sum(total) as suma from @nombreBD.dbo.mitabla)

e ir desplazandome en la tabla que contiene los nombres de las BDS y hacer
la suma mucho mas rapido.

Att
Luis Mata
Peru

Preguntas similare

Leer las respuestas

#1 Maxi
19/02/2008 - 19:27 | Informe spam
Luis, si los nombres de las bases son fijas no es necesario hacerlo asi como
lo esta haciendo! podria simplemente en la misma sentencia usar la ruta
completa

servidor.basededatos.owner.objeto


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Luis Mata" escribió en el mensaje
news:
Hola amigos
tengo una consulta
quiero realizar una consulta(suma X) a una tabla en 6 BD diferentes, lo
que hago es crear un cursor con los nombres de las BD y luego desplazarme
en ella concatenando el nombre de la BD y la tabla y luego extrayendo la
suma y guardandolo en una variable

lo que hago es usar el exec(cadena del select) y luego la suma a la
variable

se puede realizar esto sin usar el exec()

ose mi variable capturada sea @nombreBD

y hacer esto:

@suma = @suma + (select sum(total) as suma from @nombreBD.dbo.mitabla)

e ir desplazandome en la tabla que contiene los nombres de las BDS y hacer
la suma mucho mas rapido.

Att
Luis Mata
Peru

Respuesta Responder a este mensaje
#2 Luis Mata
19/02/2008 - 19:44 | Informe spam
tienes razon
pero te comento que la misma base de datos con la misma estructura se usa en
diferentes tiendas ya que todas son del mismo rubro ventas, por esto es que
tengo los nombres de las bases de datos en una tabla.
ademas de que cuando el gerente quiera digamos las ventas consolidadas de
todas las tiendas solo lo recorra con un while y saque el totas general, muy
aparte de que yo tenga que añadir otra BD al servidor y no tenga que tener
que buscar en los SP y cambia el nombre de la BD y poner la nueva BD.
asi minimizaria los errores al corregir el codigo o cambiarlo.



"Maxi" escribió en el mensaje
news:
Luis, si los nombres de las bases son fijas no es necesario hacerlo asi
como lo esta haciendo! podria simplemente en la misma sentencia usar la
ruta completa

servidor.basededatos.owner.objeto


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Luis Mata" escribió en el mensaje
news:
Hola amigos
tengo una consulta
quiero realizar una consulta(suma X) a una tabla en 6 BD diferentes, lo
que hago es crear un cursor con los nombres de las BD y luego desplazarme
en ella concatenando el nombre de la BD y la tabla y luego extrayendo la
suma y guardandolo en una variable

lo que hago es usar el exec(cadena del select) y luego la suma a la
variable

se puede realizar esto sin usar el exec()

ose mi variable capturada sea @nombreBD

y hacer esto:

@suma = @suma + (select sum(total) as suma from @nombreBD.dbo.mitabla)

e ir desplazandome en la tabla que contiene los nombres de las BDS y
hacer la suma mucho mas rapido.

Att
Luis Mata
Peru





Respuesta Responder a este mensaje
#3 Maxi Accotto
20/02/2008 - 01:42 | Informe spam
Hola, por lo que veo usted necesita consolidar bases de datos y sacar
informes.
No le seria mejor usar un datawarehouse?


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Luis Mata" escribió en el mensaje de
noticias:
tienes razon
pero te comento que la misma base de datos con la misma estructura se usa
en diferentes tiendas ya que todas son del mismo rubro ventas, por esto es
que tengo los nombres de las bases de datos en una tabla.
ademas de que cuando el gerente quiera digamos las ventas consolidadas de
todas las tiendas solo lo recorra con un while y saque el totas general,
muy aparte de que yo tenga que añadir otra BD al servidor y no tenga que
tener que buscar en los SP y cambia el nombre de la BD y poner la nueva
BD.
asi minimizaria los errores al corregir el codigo o cambiarlo.



"Maxi" escribió en el mensaje
news:
Luis, si los nombres de las bases son fijas no es necesario hacerlo asi
como lo esta haciendo! podria simplemente en la misma sentencia usar la
ruta completa

servidor.basededatos.owner.objeto


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Luis Mata" escribió en el mensaje
news:
Hola amigos
tengo una consulta
quiero realizar una consulta(suma X) a una tabla en 6 BD diferentes, lo
que hago es crear un cursor con los nombres de las BD y luego
desplazarme en ella concatenando el nombre de la BD y la tabla y luego
extrayendo la suma y guardandolo en una variable

lo que hago es usar el exec(cadena del select) y luego la suma a la
variable

se puede realizar esto sin usar el exec()

ose mi variable capturada sea @nombreBD

y hacer esto:

@suma = @suma + (select sum(total) as suma from @nombreBD.dbo.mitabla)

e ir desplazandome en la tabla que contiene los nombres de las BDS y
hacer la suma mucho mas rapido.

Att
Luis Mata
Peru









email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida