Comando Use con una Variable

07/09/2007 - 16:57 por Daniel H. Villa | Informe spam
Hola compañeros:

en la Version 2000 de SQL Server, quiero hacer esto:

declare @ls_user varchar(50),
@ls_BD varchar(50)
set @ls_user = 'morning_user'
set @ls_BD = SUBSTRING(@ls_user, 1, len(@ls_user)-5)



use @ls_BD


Sin embargo no me funciona, como puedo hacerle que mi variable donde tengo
el nombre de la Base de Datos
me haga el Use

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
07/09/2007 - 17:34 | Informe spam
T-SQL no es un lenguaje con macrosustitución, por lo tanto este tipo de cosas
NO SE PUEDEN HACER:

USE @BASE
SELECT * from @TABLA
etc...

Para ese tipo de técnica de programación hay que usar SQL dinámico. Lea
acerca del tema acá:

Las virtudes y maldades del SQL dinámico
http://www.hayes.ch/sql/sql_dinamico.html

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.



"Daniel H. Villa" wrote:

Hola compañeros:

en la Version 2000 de SQL Server, quiero hacer esto:

declare @ls_user varchar(50),
@ls_BD varchar(50)
set @ls_user = 'morning_user'
set @ls_BD = SUBSTRING(@ls_user, 1, len(@ls_user)-5)



use @ls_BD


Sin embargo no me funciona, como puedo hacerle que mi variable donde tengo
el nombre de la Base de Datos
me haga el Use

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°



Respuesta Responder a este mensaje
#2 Isaias
07/09/2007 - 19:46 | Informe spam
Gustavo

Aprovechando el post, fijate que yo tuve la necesidad de hacer lo mismo,
utilizar USE con variable, lo resolvi, ejecutando T-SQL mediante OSQL y me
funciono a la perfeccion.

1.- Crear Base de datos (desde master), nombre variable
2.- Cambiarme a esa base de datos (USE).
3.- Crear objetos (tablas, vistas, store) y copiar datos de otra base


Saludos
IIslas


"Gustavo Larriera (MVP)" wrote:

T-SQL no es un lenguaje con macrosustitución, por lo tanto este tipo de cosas
NO SE PUEDEN HACER:

USE @BASE
SELECT * from @TABLA
etc...

Para ese tipo de técnica de programación hay que usar SQL dinámico. Lea
acerca del tema acá:

Las virtudes y maldades del SQL dinámico
http://www.hayes.ch/sql/sql_dinamico.html

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.



"Daniel H. Villa" wrote:

> Hola compañeros:
>
> en la Version 2000 de SQL Server, quiero hacer esto:
>
> declare @ls_user varchar(50),
> @ls_BD varchar(50)
> set @ls_user = 'morning_user'
> set @ls_BD = SUBSTRING(@ls_user, 1, len(@ls_user)-5)
>
>
>
> use @ls_BD
>
>
> Sin embargo no me funciona, como puedo hacerle que mi variable donde tengo
> el nombre de la Base de Datos
> me haga el Use
>
> Salu2 Cordiales
>
> ¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida