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 dans un curseur


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Homme Profil pro
    S'occupe de tout.
    Inscrit en
    Février 2004
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : S'occupe de tout.
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2004
    Messages : 209
    Par défaut Insert dans un curseur
    Bonjour,

    J'ai un soucis avec un insert dans un curseur.

    J'ai créé un curseur que j'ai remplit avec une liste de client.
    Je parcours mon curseur, et pour chaque client, je fait une requête pour aller chercher différentes informations (dans différente tables), et je veux mettre le résultat dans une table temporaire, pour ensuite faire un select * sur cette table (à la fin du curseur) et SQL server râle à chaque fois sur ma table temporaire.

    Ma requête ressemble à cela.
    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
    DECLARE mon_curseur1 CURSOR FOR
    	SELECT DISTINCT mon_client
    	FROM Table_client
     
    OPEN mon_Curseur1
    FETCH NEXT FROM mon_curseur1
    INTO @client
     
    WHILE (@@FETCH_STATUS = 0)
    begin
     
    	select  @monclient				as mon_client,
    	info1			as info1,
    	info2			as info2,
    	info3			as info3,
     
    into #table_temp
    	from    Table_info
    where mon_client = @monclient
     
     
    FETCH NEXT FROM mon_curseur1
    INTO @monclient
     
    end
    CLOSE mon_curseur1
    deallocate mon_curseur1
     
    select monclient				as mon_client,
    	info1			as info1,
    	info2			as info2,
    	info3			as info3,
    from #table_temp
    Je drop ma table temporaire au début de ma procédure.
    Pourtant quand je fais tourner ma procédure, j'ai ce message qui apparait.
    Msg 2714, Level 16, State 6, Procedure ma_procedure, Line 46
    There is already an object named '#table_temp' in the database.
    Quelqu'un a une idée, je sèche ???
    Le curseur marche bien, car si je n'insert pas dans ma table, j'ai bien le résultat.
    J'ai essayé de passer par une table en dure et cela ne marche pas non plus (je n'ai pas gardé le message d'erreur).

  2. #2
    Membre expérimenté
    Inscrit en
    Juin 2006
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 229
    Par défaut
    Bonjour,

    Vous allez vous faire appeler Arthur avec vos histoires de curseurs sur ce forum.

    Zabriskir

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    SELECT ... INTO ... crée la table et y insère dedans.
    Comme vous avez mis cela dans une boucle WHILE, lors du second passage la table ne peut être recrée puisqu'elle existe déjà.

    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/ * * * * *

  4. #4
    Membre expérimenté

    Homme Profil pro
    S'occupe de tout.
    Inscrit en
    Février 2004
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : S'occupe de tout.
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2004
    Messages : 209
    Par défaut
    Effectivement.
    J'ai trop l'habitude de travailler avec le into.

    C'est résolu.
    Merci.

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

Discussions similaires

  1. PL/SQL, problème dans un curseur avec un insert
    Par yador dans le forum PL/SQL
    Réponses: 4
    Dernier message: 27/01/2006, 14h31
  2. [C#] Insertion dans un TextBox à la position du curseur
    Par papouAlain dans le forum Windows Forms
    Réponses: 6
    Dernier message: 19/12/2005, 15h25
  3. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34
  4. Insertion dans un fichier xml à partir d'un xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/03/2003, 09h45
  5. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 17h16

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