Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

TSQL: Utilisation de USE avec une variable

4 réponses
Avatar
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

4 réponses

Avatar
Med Bouchenafa
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" wrote in message
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




Avatar
EmanuelL
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" wrote in message
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
Avatar
WOLO Laurent
Pas possible avec sqlserveur 2000 et 2005.

"EmanuelL" a écrit dans le message de
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




Avatar
WOLO Laurent
C'est possible avec sql serveur 2008 seulement.
"EmanuelL" a écrit dans le message de
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