IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Création d'une vue à partir d'une requête sur plusieurs bases de données


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Par défaut Création d'une vue à partir d'une requête sur plusieurs bases de données
    Voici ma problématique :
    J'ai plusieurs bases de données dans lesquelles on a une table de même nom et même structure.
    Ex : mabase1,mabase2, mabase3, etc...
    mabase1.table1 a 2 colonnes Col1 et Col2.

    Je souhaite construire une vue à partir de cette liste de base de donnée pour regrouper les données des colonnes Col1 et Col2 des tables en questions.
    pour obtenir le résultat suivant :

    DbaseName;Col1;Col2
    mabase1;Col1Value1;Col2Value1
    mabase1;Col1Value2;Col2Value2
    etc..
    mabase2;Col1Value1;Col2Value1
    mabase2;Col1Value2;Col2Value2
    etc...
    mabase3;Col1Value1;Col2Value1
    mabase3;Col1Value2;Col2Value2
    etc...

    Pour cela , j'utilise :
    _ une liste contenant le nom de mes bases
    _ un curseur sur cette liste
    _ une variable contenant ma requete SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    DECLARE @base varchar(50);
    DECLARE @sqlCommand VARCHAR(8000);
    DECLARE curseur CURSOR FOR
     select * from ( values
     ('HOLDING_TOYS'),
     ('TOYSMOTORS_TOURS'),
     ('SAGA_ANGERS') ) as mytab(mycol);
     
    OPEN curseur;
     
    FETCH NEXT  from curseur into @base ;
     
    WHILE @@FETCH_STATUS = 0  
    BEGIN
    	SET @sqlCommand =  'SELECT ''' + @base + ''' as DBaseMycol ,[CT_Num],[CT_intitule] from ['+@base+'].[dbo].[F_COMPTET]'
    	EXEC(@sqlCommand)
    	FETCH NEXT  from curseur into @base;
    END
    CLOSE curseur
    DEALLOCATE curseur
    Le code ci-dessous affiche bien un résultat à 3 colonnes comme souhaité mais je n'arrive pas à construire une view à partir de ce résultat dans SQL Managmt Studio en y copiant ce code ou par une requête de création de vue.

    Avez-vous une idée pour ce faire ??

    ( l'utilisation d'un curseur n'est pas optimal mais je n'ai pas + de 150 bases, chacune 'ayant pas + de 50000 entrées par tables requêtées.)

    merci bcp d'avance,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Génère le script qui fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create view dbo.MaVue as 
    select 'bd1' as NomBd, col1, col2 from bd1.dbo.Latable
    UNION ALL select 'bd2', col1, col2 from bd2.dbo.Latable
    UNION ALL select 'bd3', col1, col2 from bd3.dbo.Latable
    UNION ALL ...
    Ça devrait le faire.

  3. #3
    Membre confirmé Avatar de Mygush
    Inscrit en
    Juin 2007
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 226
    Par défaut
    En complément de la réponse de 7gyY9w1ZY6ySRgPeaefZ, il est également possible de faire la même chose avec des bases de données situées sur différents serveurs SQL. Il suffit de lier les serveurs SQL entre eux et le tour est joué
    En tout cas merci de clôturer cette discussion si la solution proposée répond à ta question...

Discussions similaires

  1. [phpMyAdmin] Requêtes sur plusieurs bases de données
    Par Fala fala dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 27/09/2010, 15h53
  2. Réponses: 5
    Dernier message: 16/11/2007, 17h54
  3. [PDO] Requêtes sur plusieurs bases de données
    Par nabab dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/08/2007, 08h11
  4. Requête sur plusieurs bases de données
    Par Oluha dans le forum ASP
    Réponses: 8
    Dernier message: 14/10/2005, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo