[sql-8]table temporaire # : Pourquoi?
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.
Je passe donc en paramètre le no de la compagnie et dans le code je fais une validation :
Code:
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 |
Eh bien cela ne fonctionne pas! Cela retourne l'erreur
Citation:
Server: Msg 2714, Level 16, State 1, Line 126
There is already an object named '#temp_table' in the database.
Ce qui est embêtant c'est que le reste du code refère à la table temporaire...
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