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 :

[SQL Serveur 2000] Appel dynamique de table


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Par défaut [SQL Serveur 2000] Appel dynamique de table
    Bonjour, sur nos applications actuels, nous utilisons aujourd'hui sur notre serveur un certains nombre de bases fixes (que j'appellerais A, B et C pour l'exemple). Certainnes procédures stockées nécessitent de ramener des données d'une base à l'autre du style

    depuis le serveur B :
    SELECT * FROM A.DBO.Table1

    Nous envisageons de rendre nos applications "multi base", c'est à dire qu'au lieu d'avoir un serveur avec uniquement les bases A, B, et C, nous aurions pour chaque client, une copie de ces bases sous la forme A1, B1 et C1 pour pour le client 1, et ainsi de suite.

    Le problème, ce sont ces appels inter base dans certainnes des procédures stockées. Est-ce qu'il existe un moyen de ne pas avoir en dur dans le script le nom de serveur que l'on référence ? J'ai envie de dire que non pour ma part aprés les recherches que j'ai faite, mais je préfère avoir d'autre avis.

    Merci d'avance pour toute suggestion utile

    Edit : je n'avais pas précisé qu'il ne faut pas non plus passer par une requête dynamique, c'est difficilement envisageable de ré-écrire toutes les procédures qui utilisent des appels inter base.

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    je comprend pas où est le pb ?
    tu peux créer la base A sur le serveur1 et sur le serveur2, il suffit que ton appli "tapes" dans le bon serveur.ex:

    serveur1 => base A,B,C
    serveur2 => base A,B,C
    etc...

  3. #3
    Membre confirmé Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Par défaut
    Le problème est de faire du "multi base" sur le même serveur. Sur différent serveur, ça ne pose pas de problème en effet. Mais sur un seul serveur ?

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    il te suffit de créer une instance par "poste" => cela équivaut a faire x serveurs sur le même

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Le seul soucis pour ta méthode c'est la contre performance puis que la seule solution c'est de passer par le sql dynamique.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Par défaut
    sous sql 2005 il y aurait 2 moyens :

    avec les schema (tu peux alors avoir 2 objets avec le même nom dans une même base ex :

    A.client1.table
    A.client2.table
    ...

    et en fonction du login utilisé, le schema par défaut est client1 ou client2 etc.

    par contre il te faut un login par client.
    ------------------
    si tu dois absolument garder 3 base par client (arf !) tu peux toujours tenter l'aventure des synonymes (un beau tas de spaghettis en perspective ...)

    tu créés une base D (donc une 4ième base) par client dans laquelle seront stockés les synonymes qui pointeront vers les objets répartis dans les 3 autre s bases A, B, C.

    ex :
    D1.dbo.factures -> A1.dbo.factures
    D1.dbo.histo -> B1.dbo.histo
    D2.dbo.factures -> A2.dbo.factures
    D2.dbo.commandes -> C2.dbo.commandes
    ...
    ce qui fait que tu peux garder le même code dans tes procs (qui n'accéderont qu'aux objets de la base Dx) quel que soit ton client... mais bon ça fait peur comme soluce.

    Pourquoi ne pas tout stocker dans une seule base ?

Discussions similaires

  1. Affichage des tables sql serveur 2000 sous delphi7
    Par Zizou7 dans le forum Bases de données
    Réponses: 8
    Dernier message: 10/06/2013, 11h54
  2. Réponses: 0
    Dernier message: 22/01/2009, 11h31
  3. Supprimer une image dans une table SQL Serveur 2000
    Par Soobook dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2006, 17h00
  4. [SQL SERVEUR 2000] DTS Dynamique
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/05/2006, 11h23
  5. Recreer les indexs de table dans SQL serveur 2000
    Par FilipeVV dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/03/2006, 15h30

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