TSQL: Utilisation de USE avec une variable

Le
EmanuelL
Bonjour à Tous,

Est-il possible d'utiliser la commande USE avec une variable contenant
le nom de la base de données?

Du genre :

DECLARE @DBName AS VARCHAR(5)
SET @DBName = 'AdventureWorks'
USE @DBName

SELECT * FROM @DBName.[Person].[Contact]


Merci d'avance. ;-)

--

*!* --
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Med Bouchenafa
Le #19492601
Changer le contexte de la base de données, tout en restant dans la base de
données courante, n'est pas évident du tout
Habituellement pour résoudre ce genre de problème, on exécute le tout dans
un script
Quelque chose du genre

DECLARE @DBName AS VARCHAR(16)
DECLARE @sqlQuery VARCHAR(4000)

SET @DBName = 'AdventureWorks'
SET @sqlQuery = 'USE ' + @DBName
SET @sqlQuery = @sqlQuery + CHAR(13)
SET @sqlQuery = @sqlQuery + 'SELECT * FROM ' + @DBName +
'.[Person].[Contact]'

EXEC (@sqlQuery )


--
Bien Cordialement
Med Bouchenafa


"EmanuelL" news:
Bonjour à Tous,

Est-il possible d'utiliser la commande USE avec une variable contenant le
nom de la base de données?

Du genre :

DECLARE @DBName AS VARCHAR(5)
SET @DBName = 'AdventureWorks'
USE @DBName

SELECT * FROM @DBName.[Person].[Contact]
...

Merci d'avance. ;-)

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org




EmanuelL
Le #19492971
Merci beaucoup Med, comme d'hab tes aides sont précieuses.
Je tests.

A+ ;-)

Med Bouchenafa a présenté l'énoncé suivant :
Changer le contexte de la base de données, tout en restant dans la base de
données courante, n'est pas évident du tout
Habituellement pour résoudre ce genre de problème, on exécute le tout dans un
script
Quelque chose du genre

DECLARE @DBName AS VARCHAR(16)
DECLARE @sqlQuery VARCHAR(4000)

SET @DBName = 'AdventureWorks'
SET @sqlQuery = 'USE ' + @DBName
SET @sqlQuery = @sqlQuery + CHAR(13)
SET @sqlQuery = @sqlQuery + 'SELECT * FROM ' + @DBName +
'.[Person].[Contact]'

EXEC (@sqlQuery )


--
Bien Cordialement
Med Bouchenafa


"EmanuelL" news:
Bonjour à Tous,

Est-il possible d'utiliser la commande USE avec une variable contenant le
nom de la base de données?

Du genre :

DECLARE @DBName AS VARCHAR(5)
SET @DBName = 'AdventureWorks'
USE @DBName

SELECT * FROM @DBName.[Person].[Contact]
...

Merci d'avance. ;-)

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org







--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
WOLO Laurent
Le #19564591
Pas possible avec sqlserveur 2000 et 2005.

"EmanuelL" news:
Bonjour à Tous,

Est-il possible d'utiliser la commande USE avec une variable contenant le
nom de la base de données?

Du genre :

DECLARE @DBName AS VARCHAR(5)
SET @DBName = 'AdventureWorks'
USE @DBName

SELECT * FROM @DBName.[Person].[Contact]
...

Merci d'avance. ;-)

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org




WOLO Laurent
Le #19567691
C'est possible avec sql serveur 2008 seulement.
"EmanuelL" news:
Bonjour à Tous,

Est-il possible d'utiliser la commande USE avec une variable contenant le
nom de la base de données?

Du genre :

DECLARE @DBName AS VARCHAR(5)
SET @DBName = 'AdventureWorks'
USE @DBName

SELECT * FROM @DBName.[Person].[Contact]
...

Merci d'avance. ;-)

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org




Publicité
Poster une réponse
Anonyme