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 :

[TSQL]INSERT --> SELECT + @MaVariable


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Par défaut [TSQL]INSERT --> SELECT + @MaVariable
    Bonjour, je débute avec le TSQL et j'ai un problème sur un INSERT.

    Je dois insérer dans ma table, le résultat d'un requête + une variable.

    J'ai un variable @requete qui contient ma requête donc si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO tb_atp_articles_caracterises (art_cod,art_lib,art_stat_1,ope_lib_1) EXEC(@requete)
    Le résultat de ma requête est insérer comme il faut dans ma table.

    Seulement je viens de rajouter un champ dans ma table et il n'est pas compris dans ma requête. Il se trouve dans un variable @mcr_categorie.

    Donc je voudrais insérer le résultat de ma requête dans les 4 premier champs et dans le dernier champ de la table je voudrais ma variable.

    Je ne sais pas si c'est possible mais ça m'avancerait bien.

    Merci!

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    en méthode sale, je dirai :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO tb_atp_articles_caracterises (art_cod,art_lib,art_stat_1,ope_lib_1) EXEC(REPLACE(@requete, 'FROM', '''' + @mcr_categorie + '''' + ' FROM'))

    a condition que @mcr_categorie ne contienne pas de simple cote, sinon il faudra ajouter un REPLACE pour les doubler...

    Je n'ai pas d'idée pour faire quelque chose de propre

    expliquez nous un peu le contexte, on pourra peut être trouver une meilleure solution...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Par défaut
    Merci de ta réponse mais la méthode "sale" ne fonctionne pas. dommage...

    Le contexte :
    J'avais un document Excel qui devenait lourd à traiter. J'ai voulu donc "l'importer" dans Access, en légèrement plus élaboré avec des relations dans des tables déjà présente. Seulement mon champ @mcr_categorie n'a aucune relation avec aucunes de mes tables.

    J'ai un curseur qui parcoure ma table qui contient le champ mcr_curseur et pour chaque enregistrement j'ai une requête dynamique qui se créée. Et je n'arrive pas à inclure mon champ mcr_categorie dans ma requête dynamique.

    Voilà quelques petites précisions, si c'est toujours insuffisant, vous pouvez encore me demandez d'autres précisions.

    Bonne journée

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Citation Envoyé par srede Voir le message
    Merci de ta réponse mais la méthode "sale" ne fonctionne pas. dommage...
    C'est a dire ? ne fait pas ce que tu veux ou provoque une erreur (et dans ce cas, poste le message d'erreur)

    Citation Envoyé par srede Voir le message
    Le contexte :
    J'avais un document Excel qui devenait lourd à traiter. J'ai voulu donc "l'importer" dans Access,
    Tu es dans le forum MS-SQL, j'avais donc supposé que tu etais sous.. MS-SQL
    Tu es sous Access ?


    Citation Envoyé par srede Voir le message
    J'ai un curseur qui parcoure ma table qui contient le champ mcr_curseur et pour chaque enregistrement j'ai une requête dynamique qui se créée. Et je n'arrive pas à inclure mon champ mcr_categorie dans ma requête dynamique.
    oui, tu pourrai nous en dire plus la dessus.
    pourquoi ne rajoute-tu pas le champs directement dans ta requete, qu'est-ce qui t'en empêche

    Sinon tu peux aussi prévoir une requete UPDATE après ton INSERT pour mettre a jour le champ avec ta valeur

    Enfin j'ai l'impression quand meme que tu es parti sur une fausse piste dès le début (en général, un EXEC dans une requete, ca sent le bricolage...).D'ou proviennent tes données ? si tu as tout en base (genre pas de paramètre en entrée de ta procédure stockée), tu dois pouvoir faire tout ca en une seule requete (et te passer des EXEC et des curseurs), mais pour t'aider il faudrait qu'on connaisse la structure des tes tables concernées, et savoir ce que tu veux faire...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 29
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    C'est a dire ? ne fait pas ce que tu veux ou provoque une erreur (et dans ce cas, poste le message d'erreur)
    Voilà le message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg 102, Niveau 15, État 1, Procédure sp_atp_caracterisationArticles, Ligne 48
    Syntaxe incorrecte vers 'REPLACE'.
    Citation Envoyé par aieeeuuuuu Voir le message
    Tu es dans le forum MS-SQL, j'avais donc supposé que tu etais sous.. MS-SQL
    Tu es sous Access ?
    J'ai juste les formulaire sous access parceque je dois rentrer certaines données à la main. Mais ma procédure est sous MS-SQL

    Citation Envoyé par aieeeuuuuu Voir le message
    oui, tu pourrai nous en dire plus la dessus.
    pourquoi ne rajoute-tu pas le champs directement dans ta requete, qu'est-ce qui t'en empêche
    Si je rajoute le champ mcr_categorie le résultat de ma requête est faux parce que je n'arrive pas à trouver des liens entre mon champ mcr_catégorie et ma base.

    Citation Envoyé par aieeeuuuuu Voir le message
    Sinon tu peux aussi prévoir une requete UPDATE après ton INSERT pour mettre a jour le champ avec ta valeur
    J'y ai pensé aussi, je le ferai si je ne trouve pas d'autres solution

    Citation Envoyé par aieeeuuuuu Voir le message
    Enfin j'ai l'impression quand meme que tu es parti sur une fausse piste dès le début
    Je pense aussi que je ne suis pas sur la bonne piste... Je vais essayer de chercher encore...

    Merci de ton aide

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    sinon, poste nous la structure de tes tables, et aussi le code qui te permet de générer dynamiquement ta requete, on y verra peut être un peu plus clair...

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

Discussions similaires

  1. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 15h38
  2. Insert avec select
    Par Alexandre` dans le forum Langage SQL
    Réponses: 11
    Dernier message: 25/01/2005, 16h16
  3. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 15h39
  4. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 18h32
  5. [Insert et Select de la même table]
    Par lucimast dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/01/2004, 15h53

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