SQL Server - Consultar varias bases

   
Vista:

Consultar varias bases

Publicado por Claudio (31 intervenciones) el 28/02/2008 12:18:46
Hola a todos necesito realizar una consulta en muchas bases en el sql query analyser ya que no se donde podria estar el dato, hay alguna forma de hacerlo sin necesidad de ingresar "USE db" cada vez que quiero consultar una base distinta.

Ejemplo

USE OSS1SB_OSS1SB_TLG_F_200609121131_200609121159
SELECT ValueID, ValueName FROM Archive WHERE ValueName LIKE '*TT*'

USE OSS1SB_OSS1SB_TLG_F_200609121218_200609121222
SELECT ValueID, ValueName FROM Archive WHERE ValueName LIKE '*TT*'

USE ... n
SELECT ValueID, ValueName FROM Archive WHERE ValueName LIKE '*TT*'

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consultar varias bases

Publicado por Isaias (3 intervenciones) el 29/02/2008 00:01:59
SELECT ValueID, ValueName FROM tuserver.tubase.dbo.tutabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultar varias bases

Publicado por Claudio (31 intervenciones) el 29/02/2008 11:51:57
Isaias gracias por la data!!el tema que son 97 Bse de Datos, te muestro como lo solucione.

declare @dbname varchar(70)
declare @valor varchar (300)
declare @sql varchar (150)

declare curdb cursor for
--SELECT DB_NAME(dbid) AS DB_NAME
--FROM sysdatabases
--WHERE DB_NAME(dbid) IN ('BINARIA','CARGA_SOTEK','SOTEK','SOTEK_GESTION')
--ORDER BY dbid
SELECT name FROM sysdatabases where Left(name,7)= 'OSS1SB_'

open curdb
FETCH NEXT FROM curdb INTO @dbname
while @@FETCH_STATUS = 0

BEGIN

Set @sql='] SELECT ValueID, ValueName FROM Archive where ValueName LIKE ' + '''%FiltroTg/Equipos_FiltroTg/PIDs_2_FTg/DC29_20_08/PID.PV_IN%'''
Set @valor= 'use [' + @dbname + @sql

--Set @dbname='oss1sb_oss1sb_tlg_f_200609011850_200609011855_2_6_2007_17_21_17_23'
PRINT 'BASE DE DATOS: ' +@valor

SELECT name FROM sysdatabases where name = @dbname

exec(@valor)

--exec('use ['+@dbname+ ']SELECT ValueID, ValueName FROM Archive WHERE ValueName Like ' +@valor )


FETCH NEXT FROM curdb INTO @dbname

END

CLOSE curdb

DEALLOCATE curdb
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultar varias bases

Publicado por Isaias (3308 intervenciones) el 29/02/2008 20:21:01
Gracias por darnos a conocer tu respuesta, te sugiero que cambies:

EXEC(@STRING)

-por-

EXEC sp_executesql @NVARCHARString
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultar varias bases

Publicado por Claudio (31 intervenciones) el 03/03/2008 11:22:46
Que es mas optimo??, esa sentencia??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultar varias bases

Publicado por Isaias (3308 intervenciones) el 03/03/2008 22:07:02
Claudio

La sentencia EXEC(@String), ya no sera soportada en versiones superiores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar