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

MS SQL Server Discussion :

Requêtes multi bases de données


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 13
    Points
    13
    Par défaut Requêtes multi bases de données
    Bonjour,
    Est-il possible de donner un nom de variable à une base de données pour ensuite l'utiliser dans diverses requêtes et procédures stockées ?

    il s'agirait pour nous de copier la base principale vers une base d'archive pour ensuite épurer la base principale, tout en conservant pour l'utilisateur la possibilité de voir l'intégralité des données (à nous de savoir quant il faut aller chercher les données dans la base origine et/ou la base archive).

    Par exemple :
    declare @base_var varchar (30)

    set @base_var = archive

    select col1
    from base1.table1
    Union
    select col1
    from @base_var.table1

    J'ai bien peur que ce ne soit possible qu'en dynamic Sql ce qui ne peut se concevoir pour nous.

    Merci de votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 142
    Points : 185
    Points
    185
    Par défaut
    Effectivement, les variables ne peuvent s'utiliser qu'en T-SQL. Et leur portée n'est que locale de plus.

    Si vous ne pouvez vraiment pas utiliser le T-SQL, pourquoi ne pas créer une vue qui réalise l'union de vos 2 tables et dans laquelle irait taper l'utilisateur, et pour lequel la séparation des données dans 2 tables serait du coup transparente ?

    edit : orthographe

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Merci pour la réponse qui ne m'arrange pas, mais bon...

    Le problème de la vue resterait entier pour nous, le nom de la base de données devant être inscrit "en dur" alors que nous aimerions que chaque client (nous commercialisons un progiciel) puisse nommer sa ou ses bases comme bon lui semble.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Il y a possibilité de réaliser ce que tusouhaites en passant par une requête dynamique.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE @base_var VARCHAR(30)
    DECLARE @query VARCHAR(1000)
    SET @base_var = archive
     
    SET @query = 'SELECT col1 FROM base1.table1 UNION SELECT col1 FROM '+@base_var+'.table1'
     
    EXECUTE(@query)
    En fait, tu construis ta requête en faisant une concaténation de chaîne de caractères ensuite tu exécutes la chaîne.
    J'utilise cette méthode assez souvent afin de produire des procédures stockées génériques.

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 142
    Points : 185
    Points
    185
    Par défaut
    Je pensais que déclarer des variables, c'était déjà du T-SQL ? Que cela ne faisait pas partie de la norme SQL ? Me trompé-je ??

Discussions similaires

  1. Requêtes multi-base
    Par nicolchr dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 12/11/2014, 11h50
  2. Execution de requête sur base de données distante
    Par ~~PriVate JoKe~~ dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/11/2006, 21h59
  3. requêtes Multi Base avec Mot de Passe
    Par bohor2gannes dans le forum Access
    Réponses: 4
    Dernier message: 27/02/2006, 14h45
  4. Requête sur base de données ACCESS
    Par JLamotte dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 10h50
  5. Requête multi-base
    Par Vituret dans le forum Débuter
    Réponses: 1
    Dernier message: 04/04/2005, 16h41

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