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 :

Relation dynamique entre deux bases [2008R2]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut Relation dynamique entre deux bases
    Bonjour à tous,

    J'aimerai avoir des pistes sur ce point.

    L'idée est d'avoir une base de données obtenant des informations d'une autre base de données. Cette autre base de données serait paramètrable, c-à-d dynamiquement je peux à tout moment changer cette base de données distante en modifiant simplement, par exemple, un champ dans une table qui contiendrait le nom de la base.

    Comment mettre cela en œuvre ? Serveur lié ? Requête dynamique ? A quoi ressemblerait une requête ?

    Une de mes pistes est illustrée ci-dessous :

    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
     
    SELECT
    @bdd_mrd = bdd_mrd
    FROM
    CustomerServices
     
    -- Obtient un numéro de demande.
    EXEC @demande_num = Demandes_donneNouveauNumero
     
    -- Exécute la création de demande sur la BdD distante.
    SELECT @sql =
        N'EXEC @demande_id = ' + @bdd_mrd + '.cuserv_creationDemande ' +
        '@demande_num = ''' + @demande_num + '''';
    SET @sql_param = N'@demande_id INT OUTPUT';
    EXEC sp_executesql @sql, @sql_param, @demande_id = @demande_id OUTPUT
     
    -- Retourne l'identifiant de la demande créée.
    SELECT
    @demande_id AS id
    Dans la pratique, avez-vous déjà mis en place quelque chose de similaire ?... J'attend des avis, des idées... Merci d'avance !

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Est-ce le nom de la base (@bdd_mrd) stocké dans la colonne bdd_mrd de la table dbo.CustomerServices change tout le temps ou bien il est initialisé à l'installation et après il ne change plus ?

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Il serait lu au démarrage et ne changerait plus.

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Vous pouvez combiner à la fois les Serveurs liés et les synonymes pour donner une abstraction à vos applications de sorte qu'il ne sera pas nécessaire de retoucher le code quand vous changer de base de données sources (serveur et nom de la base de données sources )

    Plus plus de clarté, créez dans la base de destination, un schéma séparé pour vos synonymes.

    Exemple :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE SYNONYM synonym_schema.synonym_name FRO linked_server_name.source_database_name.schema.Object_name
    où Object_name représente le nom d'une table, vue, etc. de la base source.

    A+

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Merci pour avoir mentionné les SYNONYM, que je ne connaissais pas...
    Je vais étudier la chose.
    A+

  6. #6
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Ce que je vois, c'est que dans le cadre de déploiement de bases de données, il me faudra donc écrire des scripts qui créeront les SYNONYMS nécessaires, en fonction de l'environnement d'exécution (par exemple Dev et Prod). Ou le faire à la main.

    Qu'en est-il d'avoir dans SQL Server un mécanisme d'alias vers une base de données?... Ce n'est pas d'actualité chez eux?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/08/2014, 19h01
  2. Réponses: 1
    Dernier message: 26/04/2012, 14h05
  3. Requête entre deux bases
    Par dcollart dans le forum Informix
    Réponses: 2
    Dernier message: 22/05/2006, 08h54
  4. relation double entre deux tables
    Par thibautche dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/05/2005, 11h31
  5. copie de tables entre deux bases
    Par rlgrand dans le forum Débuter
    Réponses: 3
    Dernier message: 27/12/2004, 12h12

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