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 :

Erreur de syntaxe


Sujet :

MS SQL Server

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut Erreur de syntaxe
    Bonjour à tous,

    J'essaye de faire une requete pour ajouter quelques donnés dans une table,
    mais je n'arrive pas a le faire. J'ai toujours le message d'erreur:
    Msg 102, Level 15, State 1, Line 2
    Incorrect syntax near ','.


    voilà ma requete:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T_dossiers (T_dossiers.Ag, T_dossiers.Client_titre, T_dossiers.Tiers, T_dossiers.Nature, T_dossiers.D_processus, T_dossiers.D_paiement, T_dossiers.Montant, T_dossiers.Solde, T_dossiers.D_lettre_client, T_dossiers.D_lettre_huissier, T_dossiers.Notes, T_dossiers.D_cloture, T_dossiers.Collab_ouverture, T_dossiers.D_ouverture, T_dossiers.Collab_modif, T_dossiers.D_modif, T_dossiers.Compte1, T_dossiers.Compte2)
    SELECT (T_registros.AG, T_registros.CLI_TITTRE, T_comptes_complet.TIT, T_registros.NATURE, T_registros.DAT, T_registros.DAT_PAY, T_registros.MONTANT, T_registros.SOLDE, T_registros.DAT_LETTRE_CLI, T_registros.DAT_LETTRE_ORG, T_registros.NOTES, T_registros.D_FIN, T_registros.COLAB, T_registros.DAT, T_registros.COLAB_MODIF, T_registros.DAT_MODIF, T_registros.COMPTE, T_registros.COMPTE2) FROM T_registros LEFT JOIN T_comptes_complet ON T_registros.COMPTE=T_comptes_complet.COMPTE

    Est-ce que quelqu'un peut m'aider svp?
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Essais de retirer les parenthèses de ta sous-requête...
    - Le "(" après le "SELECT"
    - Le ")" avant le "FROM"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T_dossiers (T_dossiers.Ag, T_dossiers.Client_titre, T_dossiers.Tiers, T_dossiers.Nature, T_dossiers.D_processus, T_dossiers.D_paiement, T_dossiers.Montant, T_dossiers.Solde, T_dossiers.D_lettre_client, T_dossiers.D_lettre_huissier, T_dossiers.Notes, T_dossiers.D_cloture, T_dossiers.Collab_ouverture, T_dossiers.D_ouverture, T_dossiers.Collab_modif, T_dossiers.D_modif, T_dossiers.Compte1, T_dossiers.Compte2)
    SELECT (T_registros.AG, T_registros.CLI_TITTRE, T_comptes_complet.TIT, T_registros.NATURE, T_registros.DAT, T_registros.DAT_PAY, T_registros.MONTANT, T_registros.SOLDE, T_registros.DAT_LETTRE_CLI, T_registros.DAT_LETTRE_ORG, T_registros.NOTES, T_registros.D_FIN, T_registros.COLAB, T_registros.DAT, T_registros.COLAB_MODIF, T_registros.DAT_MODIF, T_registros.COMPTE, T_registros.COMPTE2) FROM T_registros LEFT JOIN T_comptes_complet ON T_registros.COMPTE=T_comptes_complet.COMPTE
    David

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Merci beaucoup pour la reponse aussi vite!


    J'ai eu maintenant l'erreur
    Msg 8152, Level 16, State 2, Line 1
    String or binary data would be truncated.

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Pensez à indenter votre code, vous n'y verrez que mieux, et vous eviterez des erreurs

    Vous pouvez aussi utiliser des alias pour clarifier le texte de votre requête.
    Une requête INSERT ne nécessite pas de préfixer les colonnes de la table cible par le nom de celle-ci :
    INSERT ne se fait que sur une seule table (comme toutes les requêtes de mise à jour de données : INSERT, UPDATE et DELETE).
    Enfin n'oubliez pas de préfixer les noms des tables par le nom du schéma auquel elles appartiennent. Le schéma par défaut est dbo.

    Cela donne quelque chose comme :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    INSERT INTO dbo.T_dossiers
    (
    	Ag,
    	Client_titre,
    	Tiers,
    	Nature,
    	D_processus,
    	D_paiement,
    	Montant,
    	Solde,
    	D_lettre_client,
    	D_lettre_huissier,
    	Notes,
    	D_cloture,
    	Collab_ouverture,
    	D_ouverture,
    	Collab_modif,
    	D_modif,
    	Compte1,
    	Compte2
    )
    SELECT reg.AG,
    		reg.CLI_TITTRE,
    		compte.TIT,
    		reg.NATURE,
    		reg.DAT,
    		reg.DAT_PAY,
    		reg.MONTANT,	
    		reg.SOLDE,	
    		reg.DAT_LETTRE_CLI,
    		reg.DAT_LETTRE_ORG,
    		reg.NOTES,
    		reg.D_FIN,
    		reg.COLAB,
    		reg.DAT,
    		reg.COLAB_MODIF,
    		reg.DAT_MODIF,
    		reg.COMPTE,	
    		reg.COMPTE2
    FROM dbo.T_registros AS reg
    LEFT JOIN dbo.T_comptes_complet AS compte ON reg.COMPTE = compte.COMPTE
    La dernière erreur que vous avez provient de la longueur d'une chaîne de caractères d'une des colonnes de votre SELECT qui est plus longue que la longueur maximale de la colonne correspondante dans la table T_dossiers.

    @++

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Merci pour les réponses.

    Pour mon dernier erreur,
    J'ai eu maintenant l'erreur
    Msg 8152, Level 16, State 2, Line 1
    String or binary data would be truncated.
    le problème c'était une champ que dans Access avait 255 caractères et dans mon SQL Server avait 250... (j'ai trouvé un peu bizarre quand même, une fois que aucune entrée avait plus de 200 caractères!)


    Merci beaucoup et à la prochaine!

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

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 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