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 :

Incohérence après un Insert


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 14
    Points
    14
    Par défaut Incohérence après un Insert
    Bonjour à tous,

    Context:
    - Deux bases de données chacune sur un serveur diffèrent
    - Un serveur linké pour simplifier la tâche
    - Une table vide sur un serveur (SQL Server 2012 SP2)(collation server:Latin1_General_CI_AS: collation BD:SQL_Latin1_General_CP1_CI_AI)
    - Une table avec les informations (SQL Server 2008)(collation:SQL_Latin1_General_CP1_CI_AI)

    Déroulement:

    Je lance ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO [IDWorks].[dbo].[UsersData] ([NO], [NOM], [PRENOM], [CODEBARRE], [TYPEPART])
    Select DISTINCT [NO], [NOM], [PRENOM], [CODEBARRE], [TYPEPART] FROM NOMSERVERLINK.NOMBD.dbo.NOMTABLE
    Premier point, si je ne mets pas la clause DISTINCT, je reçois dans la table vide les enregistrements en double, alors que la requête me donne le bon nombre d'enregistrements.

    Si je lance ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select [NO], [NOM], [PRENOM], [CODEBARRE], [TYPEPART] FROM NOMSERVERLINK.NOMBD.dbo.NOMTABLE
    Le résultat est correct. Pas de doublon.
    Si je rajoute une clause WHERE, idem

    Si je vide la table initialement vide avec un DELETE, et que je relance un nouvel Insert, mais avec une clause WHERE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO [IDWorks].[dbo].[UsersData] ([NO], [NOM], [PRENOM], [CODEBARRE], [TYPEPART])
    Select DISTINCT [NO], [NOM], [PRENOM], [CODEBARRE], [TYPEPART] FROM NOMSERVERLINK.NOMBD.dbo.NOMTABLE WHERE ([TYPEPART] = 11 OR [TYPEPART] = 99)
    Mes enregistrements sont systématiquement en double et la clause DISTINCT ne change rien.
    Si je lance la requête seule, le résultat est correct.

    Je ne fais pas du SQL tous les jours et encore moins du SQL Server, mais je suis perdu par ce comportement. C'est pourtant basique...

    Je me demande la collation ne serait pas le problème, mais je n'ai pas suffisamment d'expérience pour le dire.

    Merci pour votre aide.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    n'y aurait-il pas un déclencheur sur la table de destination ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2015
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Merci pour ton retour.

    Tu viens de résoudre mon problème.. Du moins, tu viens de me faire penser que j’ai un collègue qui travaille avec moi sur ce sujet. Nous avions prévu d'automatiser l’alimentation de la table par un JOB QU'IL A MIS en PLACE sans me prévenir.

    Bref, le JOB est arrêté et le COLLÈGUE EST ATTACHÉ SUR CHAISE.

    Merci.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Autrefois on résolvait le problème avec du goudron et des plumes !!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/07/2005, 17h37
  2. Récupération de l'id après un Insert
    Par faayy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/04/2005, 11h57
  3. Redirect de la page après un insert/update/delete
    Par mchicoix dans le forum XMLRAD
    Réponses: 5
    Dernier message: 25/02/2005, 09h31
  4. Réponses: 9
    Dernier message: 07/09/2004, 11h12
  5. [IB6] mon serveur crash apres des insert en série...
    Par Rmotte dans le forum Débuter
    Réponses: 11
    Dernier message: 27/05/2004, 14h53

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