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 :

Utilisation de la commande MERGE


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut Utilisation de la commande MERGE
    Bonjour le forum j'ai deux bases de données A et B avec des tables identiques.
    les bases de données sont installer sur deux postes différents
    je voudrai savoir: si les opérations sont effectués dans la table de la base de données A et respectivement sur la bases de données B
    peut-on utiliser la fonction MERGE pour rapatrier les données de la table de base de données A vers la table de la base de données B
    tout en sachant que les deux bases de données sont installer sur deux poste différent mai qui fonctionne en réseau?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Dans l'absolu, c'est tout à fait possible.
    Après il faut voir avec les contraintes de ton modèle de données.

  3. #3
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonsoir 7gyY9w1ZY6ySRgPeaefZ merci pour votre réponse pouvez vous me proposer une requête pour que je puisse voir comment faire?

  4. #4

  5. #5
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonsoir 7gyY9w1ZY6ySRgPeaefZ et merci pour le lien s'il vous plais je voudrais un exemple qui fait apparaître deux serveurs distant ou deux instances de serveur différents installer sur deux postes différents

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Massigne Voir le message
    Bonsoir 7gyY9w1ZY6ySRgPeaefZ et merci pour le lien s'il vous plais je voudrais un exemple qui fait apparaître deux serveurs distant ou deux instances de serveur différents installer sur deux postes différents
    Ben ça c'est l'affaire des linked server :
    https://docs.microsoft.com/en-us/sql...ql-server-2017
    Une fois que c'est configuré, ça s'utilise à peu près comme une table normale.

  7. #7
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonjour 7gyY9w1ZY6ySRgPeaefZ
    j'ai fait des recherche et je pense avoir compris comment créé un serveur lié.
    j'ai encore une question peut-on utilisé sql express comme serveur lié? si oui comment le configuré car
    chez mois avec ma requête de test j'obtient une erreur 'Msg*7411, Niveau*16, État*1, Ligne*3
    Server 'DESKTOP-RSHSD6C\SQLEXPRESS' is not configured for DATA ACCESS'!

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Massigne Voir le message
    j'ai encore une question peut-on utilisé sql express comme serveur lié?
    Ça marche avec toutes les éditions de sql server et avec toutes les versions de sql server depuis au moins la version 2000. ça marche aussi avec les bds Oracle, Mysql...

    Citation Envoyé par Massigne Voir le message
    chez mois avec ma requête de test j'obtient une erreur 'Msg*7411, Niveau*16, État*1, Ligne*3 Server 'DESKTOP-RSHSD6C\SQLEXPRESS' is not configured for DATA ACCESS'!
    As-tu essayé d'activer l'option Data Access pour ton linked server ? (Data access : Active ou désactive un serveur lié pour l'accès des requêtes distribuées.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC sp_serveroption 'YourServer', 'DATA ACCESS', TRUE
    Dernière modification par al1_24 ; 09/07/2019 à 22h06. Motif: Correction balises

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Je vois pas trop le lien entre "rappatrier des données de deux bases hébergées sur deux serveurs" et l'instruction "merge".

    Sauf s'il existe un autre "merge", celui de Transact SQL permet de faire un INSERT ou UPDATE selon des critères de matchup...
    Donc à la limite, on peut détourner MERGE pour inserrer/mettre à jour dans deux tables distinctes selon un critère de matchup (à vérifier) mais je vois pas trop en quoi ça va fusionner les données des deux bases...
    Là on est dans le pur select...
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Points : 117
    Points
    117
    Par défaut
    Bonjour à tous ça marche très bien
    mais j'ai encore une question!
    sur Sql servermanegement studio si je suis connecter sur le serveur '[DESKTOP-RSHSD6C\SQLEXPRESS]'
    la requete
    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
    use master
     go
    MERGE INTO  [DESKTOP-RSHSD6C].[GESTIONPETROLE].[dbo].[AchatFournisseur] AS target
    USING OPENQUERY (
      [DESKTOP-RSHSD6C\SQLEXPRESS], 
        'SELECT * FROM  [DESKTOP-RSHSD6C\SQLEXPRESS].[GESTIONPETROLE].[dbo].[AchatFournisseur]'
    ) AS source
        ON source.[IdAchat]=target.[IdAchat]
    	WHEN MATCHED THEN 
    	UPDATE SET [IdAchat]=source.[IdAchat],[Dates]=source.[Dates],[IDDEPOT]=source.[IDDEPOT],[IDPRODUIT]=source.[IDPRODUIT],[IDFOURNISSEUR]=source.[IDFOURNISSEUR],[NumeroBon]=source.[NumeroBon],[QUANTITE]=source.[QUANTITE]
    ,[IDMOUVEMENT]=source.[IDMOUVEMENT],[Date_Expedition]=source.[Date_Expedition],[QTEEXPEDIER_AM]=source.[QTEEXPEDIER_AM],[QTEEXPEDIER_15]=source.[QTEEXPEDIER_15],[Date_Entree]=source.[Date_Entree]
    ,[ENTREE]=source.[ENTREE],[QTERECUE_15]=source.[QTERECUE_15],[NUMFACTURE]=source.[NUMFACTURE]
    WHEN NOT MATCHED BY TARGET THEN
    INSERT ([IdAchat],[Dates],[IDDEPOT],[IDPRODUIT],[IDFOURNISSEUR],[NumeroBon],[QUANTITE]
    ,[IDMOUVEMENT],[Date_Expedition],[QTEEXPEDIER_AM],[QTEEXPEDIER_15],[Date_Entree]
    ,[ENTREE],[QTERECUE_15],[NUMFACTURE])
    VALUES (source.[IdAchat],source.[Dates],source.[IDDEPOT],source.[IDPRODUIT],source.[IDFOURNISSEUR],source.[NumeroBon],source.[QUANTITE]
    ,source.[IDMOUVEMENT],source.[Date_Expedition],source.[QTEEXPEDIER_AM],source.[QTEEXPEDIER_15],source.[Date_Entree]
    ,source.[ENTREE],source.[QTERECUE_15],source.[NUMFACTURE]);
    ne fonction pas alors je voudrais savoir comment faire pour connecter un serveur distant par requête sql et aussi savoir si c'est possible de renommer un serveur lié si oui commrnt faire?

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

Discussions similaires

  1. Utilisation de la commande svn merge avec URLs
    Par corbier32 dans le forum Subversion
    Réponses: 0
    Dernier message: 23/10/2017, 10h58
  2. Retour d'erreur avec l'utilisation de la commande For en VBS
    Par genialk2000 dans le forum VBScript
    Réponses: 3
    Dernier message: 30/03/2005, 18h45
  3. Problème avec l'utilisation de la commande system awk
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 05/10/2004, 16h18
  4. Récupérer un fichier suite à l'utilisation de la commande rm
    Par Kimael dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 02/10/2004, 18h34
  5. [TP][Graphique]Utilisation de la commande Setviewpost
    Par repairman dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 09/07/2003, 13h26

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