Sentencia USE para cambiar de una DB a otra no funciona

08/05/2008 - 22:32 por jaisol | Informe spam
Buenas,

La idea es barrer todas las bases de datos, y en cada una hacer una
operacion.

Ya hice el script pero no me funciona la sentencia del USE, a modo de
ejemplo trate con algo mas sencillo pero no se porque no cambia de la
base de datos actual a la base de datos que quiero (en este caso de la
msdb a la master).


USE msdb
GO
PRINT DB_NAME() -- imprime la base de datos actual, o sea: msdb
DECLARE @BASE VARCHAR(100)
SET @BASE = 'master'
EXEC('USE ' + @DB)
PRINT DB_NAME()


Lo probe tanto en SQL 2000 como 2005 y no paso nada.
No se que esta malo, o q debo hacer para q el cambio de una base de
datos a otra sea efectivo.

Agradeciendo de antemano cualquier colaboracion,
Jaisol
 

Leer las respuestas

#1 Gux (MVP)
08/05/2008 - 22:44 | Informe spam
Intente lo siguiente: Ponga un GO en la línea siguiente a la ejecución del USE.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"jaisol" wrote:

Buenas,

La idea es barrer todas las bases de datos, y en cada una hacer una
operacion.

Ya hice el script pero no me funciona la sentencia del USE, a modo de
ejemplo trate con algo mas sencillo pero no se porque no cambia de la
base de datos actual a la base de datos que quiero (en este caso de la
msdb a la master).


USE msdb
GO
PRINT DB_NAME() -- imprime la base de datos actual, o sea: msdb
DECLARE @BASE VARCHAR(100)
SET @BASE = 'master'
EXEC('USE ' + @DB)
PRINT DB_NAME()


Lo probe tanto en SQL 2000 como 2005 y no paso nada.
No se que esta malo, o q debo hacer para q el cambio de una base de
datos a otra sea efectivo.

Agradeciendo de antemano cualquier colaboracion,
Jaisol

Preguntas similares