OVH Cloud OVH Cloud

Variable et nom d'objet de la base

3 réponses
Avatar
Julian Alvarez
Bonjour,

je débute en t-sql et je suis bloqué sur un truc tout bête.

Je n'arrive pas à utiliser une variable qui récupère le nom d'une base avec
l'instruction USE. Je voudrais faire Use @nombase.

Au départ j'écrivais select * from dbo.@nombase.table1 et j'avais le même
souci.

Merci d'avance de votre aide.

3 réponses

Avatar
Philippe T [MS]
Bonjour,

Cela marche mais uniquement dans le contexte de ton EXEC. Dès que tu en
ressort, le contexte de la base est perdu.

Quel est le besoin ?

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Patrice Truong [MS]" wrote in message
news:
Chez moi, ceci marche bien...

DECLARE @NomBase varchar(50)

SET @NomBase = 'Pubs'

EXEC('USE ' + @NomBase + '; SELECT * FROM Authors;')


--
Patrice Truong | Microsoft Consulting Services
[ This posting is provided "AS IS" with no warranties, and confers no
rights.]





"Julian Alvarez" wrote in message
news:

Bonjour,

je débute en t-sql et je suis bloqué sur un truc tout bête.

Je n'arrive pas à utiliser une variable qui récupère le nom d'une base
avec
l'instruction USE. Je voudrais faire Use @nombase.

Au départ j'écrivais select * from et j'avais le même
souci.

Merci d'avance de votre aide.



Avatar
Julian Alvarez
Oui en effet c'est exactement mon problème je dois pouvoir garder la base du
contexte pour pouvoir continuer mon script qui lance une même requete sur une
meme table mais sur une base à chaque fois différente. (Je met le nom de
cette table dans ma variable qui est alimenté par un curseur).

Merci pour vos réponse.

"Philippe T [MS]" a écrit :

Bonjour,

Cela marche mais uniquement dans le contexte de ton EXEC. Dès que tu en
ressort, le contexte de la base est perdu.

Quel est le besoin ?

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Patrice Truong [MS]" wrote in message
news:
Chez moi, ceci marche bien...

DECLARE @NomBase varchar(50)

SET @NomBase = 'Pubs'

EXEC('USE ' + @NomBase + '; SELECT * FROM Authors;')


--
Patrice Truong | Microsoft Consulting Services
[ This posting is provided "AS IS" with no warranties, and confers no
rights.]





"Julian Alvarez" wrote in message
news:

> Bonjour,
>
> je débute en t-sql et je suis bloqué sur un truc tout bête.
>
> Je n'arrive pas à utiliser une variable qui récupère le nom d'une base
> avec
> l'instruction USE. Je voudrais faire Use @nombase.
>
> Au départ j'écrivais select * from et j'avais le même
> souci.
>
> Merci d'avance de votre aide.
>





Avatar
Philippe T [MS]
Bonjour,

Je crois qu'il n'y a pas de solution simple si ce n'est de passer par un
EXEC comme indiqué ou d'utiliser une procédure du type sp_msforeachdb. :-(

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Julian Alvarez" wrote in message
news:
Oui en effet c'est exactement mon problème je dois pouvoir garder la base
du
contexte pour pouvoir continuer mon script qui lance une même requete sur
une
meme table mais sur une base à chaque fois différente. (Je met le nom de
cette table dans ma variable qui est alimenté par un curseur).

Merci pour vos réponse.

"Philippe T [MS]" a écrit :

Bonjour,

Cela marche mais uniquement dans le contexte de ton EXEC. Dès que tu en
ressort, le contexte de la base est perdu.

Quel est le besoin ?

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Patrice Truong [MS]" wrote in message
news:
Chez moi, ceci marche bien...

DECLARE @NomBase varchar(50)

SET @NomBase = 'Pubs'

EXEC('USE ' + @NomBase + '; SELECT * FROM Authors;')


--
Patrice Truong | Microsoft Consulting Services
[ This posting is provided "AS IS" with no warranties, and confers no
rights.]





"Julian Alvarez" wrote in
message
news:

> Bonjour,
>
> je débute en t-sql et je suis bloqué sur un truc tout bête.
>
> Je n'arrive pas à utiliser une variable qui récupère le nom d'une base
> avec
> l'instruction USE. Je voudrais faire Use @nombase.
>
> Au départ j'écrivais select * from et j'avais le
> même
> souci.
>
> Merci d'avance de votre aide.
>