Bonjour
Je suis en train de programmer une stored procedure et j'utilise les tables temporaires :
Dans ma compagnie, nous avons deux compagnies (!) qui fonctionnent pareil mais qui sont sur deux databases séparées. Donc systématiquement, dès que nous faisons une stored procedure, elle doit être fonctionnelle pour les deux compagnies.
Code : Sélectionner tout - Visualiser dans une fenêtre à part #temp_table
Je passe donc en paramètre le no de la compagnie et dans le code je fais une validation :
Eh bien cela ne fonctionne pas! Cela retourne l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if @Compagnie = 1 BEGIN select * into #Temp_table from database1.dbo.table_name END if @Compagnie = 2 BEGIN select * into #Temp_table from database2.dbo.table_name END
Ce qui est embêtant c'est que le reste du code refère à la table temporaire...Server: Msg 2714, Level 16, State 1, Line 126
There is already an object named '#temp_table' in the database.
J'ai solutionné le problème en créant une table directement dans ma base de données au lieu d'utiliser le #...
Ma question : mais pourquoi SQL m'empêche de faire cela? Je ne comprend pas, lorsque le code va rouler, nécessairement, la table ne sera pas créée deux fois?
Merci de vos réponses
Partager