Bonjour,
étant en stage en entreprise on me demande de crée une vue d'une base de donnée dans une autre base es-possible? et si oui comment
Merci
Bonjour,
étant en stage en entreprise on me demande de crée une vue d'une base de donnée dans une autre base es-possible? et si oui comment
Merci
Bonjour,
Oui sans aucun soucis il faut utiliser le nom complet de vos table à savoir:
nomBaseDeDonnées.nomschéma.nomTable
Bonjour,
Suivant le titre de votre sujet, je pense que vous devez créer une vue dont la spécification est une requête entre deux bases de données.
Il me semble qu'on ne peut créer une vue uniquement pour des objets d'une même base de données, et cela me paraît d'ailleurs tout à fait normal.
En revanche, vous pouvez créer une procédure stockée qui effectuera la requête.
Si les bases de données sont hébergées par la même instance de SQL Server, vous devrez écrire quelque chose comme :
Si en revanche vos bases de données sont hébergées par des instances de SQL Server distinctes, vous devrez ajouter, dans la base de données dans laquelle vous devrez créer la vue, ajouter un serveur lié qui pointe sur l'autre instance, à l'aide de la procédure stockée sp_addlinkedserver ou bien dans SQL Server Management Studio, sous la node "Objets Serveur" / clic droit sur Serveurs liés | Nouveau serveur lié...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE PROCEUDRE maProcedure @a INT, @b INT AS BEGIN SELECT A.mesColonnes, B.mesColonnes FROM BD_A.dbo.maTableA AS A [INNER|LEFT|RIGHT|FULL] JOIN BD_B.dbo.maTableB AS B ON uneCléDeMaTableA = uneCléDeMaTableB WHERE A.uneColonneDeMaTableA = @a AND B.uneColonneDeMaTableB = @b END
Votre procédure stockée sera alors :
@++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE PROCEUDRE maProcedure @a INT, @b INT AS BEGIN SELECT A.mesColonnes, B.mesColonnes FROM ServeurA.BD_A.dbo.maTableA AS A [INNER|LEFT|RIGHT|FULL] JOIN ServeurB.BD_B.dbo.maTableB AS B ON uneCléDeMaTableA = uneCléDeMaTableB WHERE A.uneColonneDeMaTableA = @a AND B.uneColonneDeMaTableB = @b END![]()
Partager