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 :

Insert-Select Query - Comment indiquer les serveurs


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 74
    Points
    74
    Par défaut Insert-Select Query - Comment indiquer les serveurs
    Bonjour,

    J'aimerais faire la requête suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into [Serveur1].[Base1].dbo.Result(liste_des_champs) select liste_des_champs from [Serveur2].[Base2].dbo.Result
    Je me demande cependant comment indiquer les serveurs car je n'ai de visibilité que sur 1 à la fois i.e. la requête que je suis en train d'écrire semble être spécifique à une connexion.

    merci

    ps j'utilise Microsoft SQL Server Management Studio -10.0.1600.22

    Acheo

  2. #2
    Invité
    Invité(e)
    Par défaut
    il faut créer un linked server entre les deux instances : http://msdn.microsoft.com/en-us/library/ff772782.aspx

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 74
    Points
    74
    Par défaut
    Je ne trouve pas Linked Servers tel que décrit dans les instructions publiée sur MSDN. (voir image en attache)

    1.In SQL Server Management Studio, open Object Explorer, expand Server Objects, right-click Linked Servers, and then click New Linked Server.
    Serait-ce que je n'ai pas une bonne version du Management Studio?

    merci
    Images attachées Images attachées  

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 74
    Points
    74
    Par défaut trop fatigué?
    Désolé, la réponse était sous mes yeux.

    merci

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 74
    Points
    74
    Par défaut
    Bon, j'ai réussi à créer le linked server et j'ai fais une petite requête simple me permettant de lire des enregistrements sur celui-ci. Par contre, ca se brouille lorsque j'essaie de faire la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into dbo.ATE(idsATE,strDevice,strProject,strSoftNoXXX,strTestEnv)
    select (idsATE,strDevice,strProject,strSoftNoXXX,strTestEnv) from [srvsql2].ATE_Results.dbo.ATE

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par acheo Voir le message
    Par contre, ca se brouille lorsque j'essaie de faire la requête suivante:
    Comment voulez-vous que l'on vous aide davantage avec ce genre d'information imprécise ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 74
    Points
    74
    Par défaut
    Et quelles précisions aimeriez-vous avoir? Comme je ne suis pas DB Admin, je viens sur ce forum justement pour avoi de l'aide.

    J'ai fais la requête ici haut et ca ne passe pas, donc, si j'ai une erreur de syntaxe, peut être qu'un pro comme vous peux m'aider?

    merci

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par acheo Voir le message
    J'ai fais la requête ici haut et ca ne passe pas, donc, si j'ai une erreur de syntaxe, peut être qu'un pro comme vous peux m'aider?
    Qu'est-ce que ça veut dire pour vous "ça ne passe pas" : y a un message d'erreur (lequel ??) ou ça ne fait pas ce que vous voulez ??
    Comment voulez-vous que l'on détecte une erreur sans même savoir s'il y a une erreur ni sans connaitre l'éventuel message d'erreur, sans la description des tables en jeu, sans la version de bd, etc...
    Bref, à part la télépathie, la chiromancie ou le vaudou, je vois pas...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 74
    Points
    74
    Par défaut
    Pour la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into ATE(idsATE,strDevice,strProject,strSoftNoXXX,strTestEnv)
    select * from [srvsql2].ATE_Results.dbo.ATE
    J'obtiens le message d'erreur suivant:
    Msg 544, Level 16, State 1, Line 1
    Cannot insert explicit value for identity column in table 'ATE' when IDENTITY_INSERT is set to OFF.
    SQL Server version: Microsoft SQL Server Standard Edition (64-bit) 10.50.1600.1

    J'ai bien enlevé l'auto-numbering sur la clé primaire idsATE et j'ai mis IDENTITY_INSRT à ON

    Les tables en jeu sont les mêmes sauf que j'ai désactivé les contraintes sur la table destination.

    Les tables sont sous 2 serveurs différents.

  10. #10
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    insert into ATE(idsATE,strDevice,strProject,strSoftNoXXX,strTestEnv)
    select * from [srvsql2].ATE_Results.dbo.ATE

    Spécifiez le nom des colonnes dans le select!!!

    J'ai bien enlevé l'auto-numbering sur la clé primaire idsATE et j'ai mis IDENTITY_INSRT à ON
    Pouvez vous poster votre code complet incluant cette désactivation?
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Points : 74
    Points
    74
    Par défaut
    Le nom des colonnes ne semble pas avoir d'incidence. J'ai fais le test.

    Cependant, quoique je fasse, il manque toujours des enregistrements dans la table destination. La table source contient 632,667 enregistrements. Ma table destination en contient 632,650 soit 17 de moins.

    Est-ce que SLQ Server a des limites dans ce genre de requête?

    merci

    Acheo

  12. #12
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Le nom des colonnes ne semble pas avoir d'incidence. J'ai fais le test.
    Ce n'est pas la question... prenez cette habitude, vous épargnez des efforts à votre SGBDR et si votre table change (ajout/modif d'une colonne) votre requête risque de ne plus fonctionner..

    Est-ce que SLQ Server a des limites dans ce genre de requête?
    Non
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  13. #13
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Cependant, quoique je fasse, il manque toujours des enregistrements dans la table destination
    Donc maintenant la requête passe sans erreur?

    Peut on voir la requête qui passe sans erreur?

    Comment connaissez vous le nombre d'enregistrements de vos tables?

    Peut on voir les structures des tables?

    (que de question je sais...)
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Donc maintenant la requête passe sans erreur?
    Peut on voir la requête qui passe sans erreur?
    Comment connaissez vous le nombre d'enregistrements de vos tables?
    Peut on voir les structures des tables?
    (que de question je sais...)
    Questions que j'avais plus ou moins évoqués il y a 5 jours...
    Et c'était resté lettres mortes...

  15. #15
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Questions que j'avais plus ou moins évoqués il y a 5 jours...
    Et c'était resté lettres mortes...
    Ah oui j'avais notamment raté le cultissime
    ca se brouille
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

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

Discussions similaires

  1. [SQL QUERY] Comment extraire les lignes enfants d'une table ?
    Par gauthierb dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/05/2014, 10h19
  2. Réponses: 1
    Dernier message: 14/08/2010, 20h41
  3. Réponses: 2
    Dernier message: 05/03/2010, 11h20
  4. Comment fonctionnent les index des options d'un select ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2005, 18h05
  5. [VB6] Comment lister les serveurs SQL d'un domaine ?
    Par WOLO Laurent dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/01/2004, 08h49

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