Bonjour,
J'ai deux bases de données sur une même instance.
Exemple : DEVA et DEVB.
J'ai des requêtes qui font des jointures ou des recopies entre les tables des deux bases.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select * from DEVA.dbo.TBL1 inner join DEVB.dbo.TBL2 on ... where ...
Maintenant, j'ai, sur la même instance de SQL Server, d'autres bases, par exemple TESTA et TESTB.
Vous l'aurez compris, quand je suis content de mon script, je souhaite le prendre "tel quel" et le faire tourner sur TESTA et TESTB au lieu de DEVA et DEVB.
Actuellement, à chaque livraison, je dois modifier à la main les fichiers SQL, au risque d'oublier un bout, ou d'écraser par mégarde une modification.
Je cherche donc s'il est possible, de manière simple et efficace de faire une sorte d'alias d'une base de données quand on l'appelle depuis une certaine base de donnée.
Par exemple un truc du genre :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 use [DEVA] go create alias [BDD_B] for [DEVB]; go
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 use [TESTA] go create alias [BDD_B] for [TESTB]; go
Puis mon script, qui tournerait dans DEVA ou TESTA deviendrait :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select * from dbo.TBL1 inner join BDD_B.dbo.TBL2 on ... where ...
Est-ce que ça existe ?
Une solution probablement plus propre serait de recopier la base "B" en tant que schema dans la base "A", mais je préfère conserver deux bases distinctes.








Répondre avec citation



Partager