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.
Je drop ma table temporaire au début de ma procédure.
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
Pourtant quand je fais tourner ma procédure, j'ai ce message qui apparait.
Quelqu'un a une idée, je sèche ???Msg 2714, Level 16, State 6, Procedure ma_procedure, Line 46
There is already an object named '#table_temp' in the database.
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).
Partager