[SQL SERVER] Changer de database dans une procedure stockée

Changer de database dans une procedure stockée [SQL SERVER] - SQL/NoSQL - Programmation

Marsh Posté le 19-10-2006 à 09:48:08    

Bonjour,

 

Soit un nombre n de bases identiques, par exemple BaseA, BaseB, BaseC
et une base différente, ex : BaseGroupe

 

Je souhaiterais pouvoir passer en variable dans une procédure stockée le nom de la base à attaquer.
du genre :

 


create proc liste_nom_clients (@NomBase as database) as

 

select nom from @nombase.dbo.clients

 

go

 

Forcément, ça ne marche pas, database n'est pas un type de donnée. J'ai fouillé dans la doc, mais je ne trouve rien de concluant.

 

J'utilise un Use pour mes dbcc reindex, mais cette instruction ne marche pas dans une procedure stockée....

 


Auriez-vous une soluce ?

 

Merci

 


---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 19-10-2006 à 09:48:08   

Reply

Marsh Posté le 19-10-2006 à 11:03:20    

Je saisis pas trop, là.[:jean-guitou]
Procédure stockée = stockée dans la base...donc tu la mettrais dans quelle base ta procédure stockée?[:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 19-10-2006 à 11:16:45    

Dans BaseGroupe :) Depuis BaseGroupe je veux aller faire des recherches, des jointures... dans baseA, base B....etc
 
je pourrais faire un masque, mais pour les procédures complexes ça va vite devenir l'enfer. N'y a t'il pas un type de donnée "database" ?
 


---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 19-10-2006 à 11:18:51    

Alors là ça devient trop spécifique sql server pour moi, désolé.[:joce]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 19-10-2006 à 11:22:39    

Code :
  1. EXEC ('SELECT * FROM '+@ta_base)


 
 :heink:

Reply

Marsh Posté le 19-10-2006 à 11:25:03    

jbourdellon a écrit :

Code :
  1. EXEC ('SELECT * FROM '+@ta_base)
 

 :heink:


 :jap:

 

Un masque quoi...

 

Il n'y a donc aucun type de données database ?


---------------
I drive at 88mph ! Just in case...
Reply

Marsh Posté le 19-10-2006 à 11:26:53    

pas a ma connaissance.
Et la méthode que je t'ai donné fonctionne super bien sur des serveurs distants même (moyennant quelques parametrages !!! )

Reply

Marsh Posté le 19-10-2006 à 14:08:21    

Ca fonctionne effectivement très bien :)
 
Bon, ça complique pas mal la lecture mais ça fonctionne :D


---------------
I drive at 88mph ! Just in case...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed